<SEC-DOCUMENT>0001140361-23-014061.txt : 20230328
<SEC-HEADER>0001140361-23-014061.hdr.sgml : 20230328
<ACCEPTANCE-DATETIME>20230327190048
ACCESSION NUMBER:		0001140361-23-014061
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		94
CONFORMED PERIOD OF REPORT:	20221231
FILED AS OF DATE:		20230328
DATE AS OF CHANGE:		20230327

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TRANSACT TECHNOLOGIES INC
		CENTRAL INDEX KEY:			0001017303
		STANDARD INDUSTRIAL CLASSIFICATION:	COMPUTER PERIPHERAL EQUIPMENT, NEC [3577]
		IRS NUMBER:				061456680
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-21121
		FILM NUMBER:		23765793

	BUSINESS ADDRESS:	
		STREET 1:		ONE HAMDEN CENTER
		STREET 2:		2319 WHITNEY AVENUE, SUITE 3B
		CITY:			HAMDEN
		STATE:			CT
		ZIP:			06518
		BUSINESS PHONE:		203-859-6800

	MAIL ADDRESS:	
		STREET 1:		ONE HAMDEN CENTER
		STREET 2:		2319 WHITNEY AVENUE, SUITE 3B
		CITY:			HAMDEN
		STATE:			CT
		ZIP:			06518
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>form10k2022.htm
<DESCRIPTION>FORM 10K FOR THE YEAR ENDED DECEMBER 31, 2022
<TEXT>
<XBRL>
<html xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:srt="http://fasb.org/srt/2022" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:us-gaap="http://fasb.org/us-gaap/2022" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:country="http://xbrl.sec.gov/country/2022" xmlns:currency="http://xbrl.sec.gov/currency/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:naics="http://xbrl.sec.gov/naics/2022" xmlns:sic="http://xbrl.sec.gov/sic/2022" xmlns:stpr="http://xbrl.sec.gov/stpr/2022" xmlns:exch="http://xbrl.sec.gov/exch/2022" xmlns:cef="http://xbrl.sec.gov/cef/2022" xmlns:tact="http://transact-tech.com/20221231" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
    <meta http-equiv="Content-Type" content="text/html" />
</head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; background-color: #FFFFFF;">
<div id="DSPFiXBRLHidden" style="display: none;"><ix:header><ix:hidden><ix:nonNumeric name="dei:AmendmentFlag" id="Fact_f6a5b19d42bf410783d962a91bc0ba82" contextRef="c20220101to20221231" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" id="Fact_3f2b21b841364f29a81dbc0ee2f1222c" contextRef="c20220101to20221231" format="ixt:date-month-day">12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" id="Fact_3c02f09d55b04f4a95a488652f497319" contextRef="c20220101to20221231">2022</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" id="Fact_59791bdf95e94498aa215e35f394f20b" contextRef="c20220101to20221231">FY</ix:nonNumeric><ix:nonNumeric name="dei:EntityCentralIndexKey" id="Fact_bca4e2999aea47379e67da3412482679" contextRef="c20220101to20221231">0001017303</ix:nonNumeric><ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_b7a5dc04200f41ee9ee14fafb453e89a" contextRef="c20220101to20221231" unitRef="U001" decimals="-3">0</ix:nonFraction><ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_0fb767fdbb19460d8f1b18e429c9fbeb" contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member">P12M</ix:nonNumeric><ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_2611232e0afb4269a39e68f37603f983" contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member">P12M</ix:nonNumeric><ix:nonNumeric name="dei:AuditorFirmId" id="Fact_f6c812e84aa049a2a1a4c71972c2109f" contextRef="c20220101to20221231">688</ix:nonNumeric><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_cd58adf38f9044d9839a3285fb52113e" contextRef="c20211231" unitRef="U001" xsi:nil="true"></ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:href="tact-20221231.xsd" xlink:type="simple"></link:schemaRef></ix:references><ix:resources><xbrli:context id="c20220101to20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-02-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20201231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20201231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_TreasuryStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</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="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</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="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_TreasuryStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementEquityComponentsAxis_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_StatementEquityComponentsAxis_TreasuryStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210816to20210816"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-08-16</xbrli:startDate><xbrli:endDate>2021-08-16</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-01</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-13</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ToolsDiesAndMoldsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FacilityInLasVegasNevadaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-04-26</xbrli:startDate><xbrli:endDate>2022-04-26</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FacilityInHamdenConnecticutMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-04-20</xbrli:startDate><xbrli:endDate>2021-04-20</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20220101to20221231_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</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="c20210101to20211231_ProductOrServiceAxis_PrintrexMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</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="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</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="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</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="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</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="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2022">2023-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2022">2024-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain xmlns:us-gaap="http://fasb.org/us-gaap/2022">2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</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="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:ScientificGamesMember</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="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:TheBrightGroupMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:ScientificGamesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:TheBrightGroupMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</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="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:NcrCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</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="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:NcrCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:FederalFundsEffectiveSwapRateMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-07-21</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210701to20210701_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-07-01</xbrli:startDate><xbrli:endDate>2021-07-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</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="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</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="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</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="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221231_IncomeTaxAuthorityAxis_DomesticCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_TaxCreditCarryforwardAxis_ResearchMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_TaxCreditCarryforwardAxis_ResearchMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20201231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</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="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</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="c20220101to20221231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20050101to20191231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2005-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</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="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</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="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact: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="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</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="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20211001to20211231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-10-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20221001to20221231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-10-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210401to20210630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-04-01</xbrli:startDate><xbrli:endDate>2021-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220701to20220930"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-07-01</xbrli:startDate><xbrli:endDate>2022-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210701to20210930"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></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="c20220101to20220331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20210331"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20220401to20220630"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-04-01</xbrli:startDate><xbrli:endDate>2022-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</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="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-10-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-10-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember><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="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210930"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210930_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember><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="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001017303</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="U001"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="U002"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U003"><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="U004"><xbrli:measure>tact:Segment</xbrli:measure></xbrli:unit><xbrli:unit id="U005"><xbrli:measure>tact:Solution</xbrli:measure></xbrli:unit><xbrli:unit id="U006"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U007"><xbrli:measure>tact:Plan</xbrli:measure></xbrli:unit><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_14d134c5fbe340148268d5dfe009ec06" toRefs="Foot_d955d8fd57964b2cbb978471388690e9" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_23b1a39ee72346a6a27a3554f4ad3103" toRefs="Foot_d955d8fd57964b2cbb978471388690e9" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_22fa15bb2b77457996465fc4e131d672" toRefs="Foot_d955d8fd57964b2cbb978471388690e9" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_8e2cbb1bc4a8489883618e5b691d6a7c" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_1a046905053745888916466b089b14b6" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_87b7ef37c79e4149b77eae5d38631de4" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_ebc9c40a649a4c66aec06f5d468342e7" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_df3938f8c7c24d37a5be348b6fd38137" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_6165e8fea0bf42e6bd40c15cef980e02" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_76e5d30a0083430fb73cbadab39dd773" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_d4d13609e6bd48d79e77aa0411834747" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_97d1d830fa1a4992be9b569010ebcbbd" toRefs="Foot_02c9893d755d46e09c2c806bd0739d14" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_61428b6b7da94fe39e2fe74edcaf3bc3" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_fe6033ed1fa94d7992391e7c1f21fb28" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_e3949a5fc12045c3b5160a0af88db9e2" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_a6c042732c2c48afb323404407813393" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_7188852d38b04de483263809d5a6e5d5" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship><ix:relationship order="1.0" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="Fact_7a344c6af5824c82bcf60226d39b1cc2" toRefs="Foot_42b55853fb414ccdba8ab0b20970caa0" linkRole="http://www.xbrl.org/2003/role/link"></ix:relationship></ix:resources></ix:header></div>
<div class="BRPFPageHeader"></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 14pt; font-weight: bold;">UNITED STATES</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 14pt; font-weight: bold;">SECURITIES AND EXCHANGE COMMISSION</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">Washington, D.C. 20549</div>
<div style="text-align: justify;"><span style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;"><span style="font-size: 18pt; font-family: 'Times New Roman', Times, serif;">FORM </span><span style="font-size: 18pt; font-family: 'Times New Roman', Times, serif;"><ix:nonNumeric name="dei:DocumentType" id="Fact_831a2b9bdd3a447ab9671e4f74dc2806" contextRef="c20220101to20221231">10-K</ix:nonNumeric></span></div>
<div><br /></div>
<div style="text-align: left; text-indent: -18pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Mark One)</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Segoe UI Symbol'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentAnnualReport" id="Fact_b9a75528a0474f98bd84ef813be30a76" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2612;</ix:nonNumeric></td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">For the fiscal year ended <ix:nonNumeric name="dei:DocumentPeriodEndDate" id="Fact_f69dcde0a6764584a27151f997918537" contextRef="c20220101to20221231" format="ixt:date-monthname-day-year-en">December 31, 2022</ix:nonNumeric></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">or</div>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Segoe UI Symbol'; font-size: 10pt;"><ix:nonNumeric name="dei:DocumentTransitionReport" id="Fact_9b0a2025af3641bc8133c64c6563a584" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2610;</ix:nonNumeric></td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">For the transition period from __________ to __________</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Commission file number:</span>&#xA0;<ix:nonNumeric name="dei:EntityFileNumber" id="Fact_a6b959406a8f4319b51fd38c02d2b7b2" contextRef="c20220101to20221231">0-21121</ix:nonNumeric></div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman'; font-size: 1pt;"><img src="image01.jpg" width="353" height="87" alt="graphic" /></div>
<div style="text-align: center; font-family: 'Times New Roman'; font-size: 1pt;"><ix:nonNumeric name="dei:EntityRegistrantName" id="Fact_e585fcc2a45e4e2b9250bfab3bcc1731" contextRef="c20220101to20221231">TRANSACT TECHNOLOGIES INC</ix:nonNumeric></div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Exact name of registrant as specified in its charter)</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 48.4%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" id="Fact_15f6ae45294943698f4e43b979d20b36" contextRef="c20220101to20221231" format="ixt-sec:stateprovnameen">Delaware</ix:nonNumeric></div></td>
    <td style="width: 3.89%; vertical-align: top;">&#160;</td>
    <td style="width: 47.71%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" id="Fact_7889f93d66e44e89b5420e50ef1a2a00" contextRef="c20220101to20221231">06-1456680</ix:nonNumeric></div></td>
  </tr>
  <tr>
    <td style="width: 48.4%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">(State or other jurisdiction of incorporation or organization)</div></td>
    <td style="width: 3.89%; vertical-align: top;">&#160;</td>
    <td style="width: 47.71%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">(I.R.S. Employer Identification No.)</div></td>
  </tr>
  <tr>
    <td style="width: 48.4%; vertical-align: top;">&#160;</td>
    <td style="width: 3.89%; vertical-align: top;">&#160;</td>
    <td style="width: 47.71%; vertical-align: bottom;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 48.4%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityAddressAddressLine1" id="Fact_c925d5faf0b74348bd72e39f8e3990db" contextRef="c20220101to20221231">One Hamden Center</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressAddressLine2" id="Fact_27feea6f28254a24b26fb8cba48576cb" contextRef="c20220101to20221231">2319 Whitney Avenue, Suite 3B</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressCityOrTown" id="Fact_82e1bbde701f4de1945f9d2c73d31598" contextRef="c20220101to20221231">Hamden</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressStateOrProvince" id="Fact_f57299e8ee7a41ca9d7eeb1023f199a5" contextRef="c20220101to20221231">CT</ix:nonNumeric></div></td>
    <td style="width: 3.89%; vertical-align: top;">&#160;</td>
    <td style="width: 47.71%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: bold;"><ix:nonNumeric name="dei:EntityAddressPostalZipCode" id="Fact_4fc802ab3a63405b986f01d3c872e590" contextRef="c20220101to20221231">06518</ix:nonNumeric></div></td>
  </tr>
  <tr>
    <td style="width: 48.4%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">(Address of principal executive offices)</div></td>
    <td style="width: 3.89%; vertical-align: top;">&#160;</td>
    <td style="width: 47.71%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">(Zip Code)</div></td>
  </tr>
</table>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 100%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(<ix:nonNumeric name="dei:CityAreaCode" id="Fact_413584a19e644f9e853b1dcbd57fb4c3" contextRef="c20220101to20221231">203</ix:nonNumeric>) <ix:nonNumeric name="dei:LocalPhoneNumber" id="Fact_59a262d9aa4c4ef3b7e5091fb6386070" contextRef="c20220101to20221231">859-6800</ix:nonNumeric></div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Registrant&#8217;s Telephone Number, Including Area Code)</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Securities registered pursuant to Section 12(b) of the Act:</div>
<div><br /></div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 35.97%; vertical-align: middle; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Title of each class</div></td>
    <td style="width: 2.64%; vertical-align: middle;">&#160;</td>
    <td style="width: 22.22%; vertical-align: middle; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Trading Symbol(s)</div></td>
    <td style="width: 1.81%; vertical-align: middle;">&#160;</td>
    <td style="width: 37.36%; vertical-align: middle; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Name of each exchange on which registered</div></td>
  </tr>
  <tr>
    <td style="width: 35.97%; vertical-align: middle;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="dei:Security12bTitle" id="Fact_bfa6f02d52d745359e90449a028e47e1" contextRef="c20220101to20221231">Common stock, par value $0.01 per share</ix:nonNumeric></div></td>
    <td style="width: 2.64%; vertical-align: middle;">&#160;</td>
    <td style="width: 22.22%; vertical-align: middle;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="dei:TradingSymbol" id="Fact_cd811c59601b4dc78b81323cf96d7f35" contextRef="c20220101to20221231">TACT</ix:nonNumeric></div></td>
    <td style="width: 1.81%; vertical-align: middle;">&#160;</td>
    <td style="width: 37.36%; vertical-align: middle;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="dei:SecurityExchangeName" id="Fact_c81c3830d834452dafb28105e9c8c55d" contextRef="c20220101to20221231" format="ixt-sec:exchnameen">NASDAQ Global Market</ix:nonNumeric></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Securities registered pursuant to Section 12(g) of the Act: None</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.&#160; Yes&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span>&#160;&#160; <ix:nonNumeric name="dei:EntityWellKnownSeasonedIssuer" id="Fact_4a04559c040143debf202a4ef3e81552" contextRef="c20220101to20221231">No</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.&#160; Yes&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span>&#160;&#160; <ix:nonNumeric name="dei:EntityVoluntaryFilers" id="Fact_92b628404cb84416ab7665bbd49af719" contextRef="c20220101to20221231">No</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">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.&#160; <ix:nonNumeric name="dei:EntityCurrentReportingStatus" id="Fact_ce555c339187407aa9079e8d81e2f463" contextRef="c20220101to20221231">Yes</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">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 during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).&#160; <ix:nonNumeric name="dei:EntityInteractiveDataCurrent" id="Fact_a679060afc8f457faff2b49c5e8d80f2" contextRef="c20220101to20221231">Yes</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company or an emerging growth company.&#160; 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.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 57.5%; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Large accelerated filer&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div></td>
    <td style="width: 42.5%; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Accelerated filer&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div></td>
  </tr>
  <tr>
    <td style="width: 57.5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 8pt;"><ix:nonNumeric name="dei:EntityFilerCategory" id="Fact_a97ead8b1b924fd9b8a4ab14349378d4" contextRef="c20220101to20221231" format="ixt-sec:entityfilercategoryen">Non-accelerated filer</ix:nonNumeric>&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span></div></td>
    <td style="width: 42.5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Smaller reporting company&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';"><ix:nonNumeric name="dei:EntitySmallBusiness" id="Fact_cd52f96d33fa4e649e8c81915406c752" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2612;</ix:nonNumeric></span></div></td>
  </tr>
  <tr>
    <td style="width: 57.5%; vertical-align: top;">&#160;</td>
    <td style="width: 42.5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Emerging growth company <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';"><ix:nonNumeric name="dei:EntityEmergingGrowthCompany" id="Fact_8f40ad439de845049d870e3067733236" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2610;</ix:nonNumeric></span></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">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.&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;"><span style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report. </span><span style="font-size: 8pt; font-family: 'Segoe UI Symbol';"><ix:nonNumeric name="dei:IcfrAuditorAttestationFlag" id="Fact_e81826e9c7b540f691b9e21cfd40a403" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2610;</ix:nonNumeric></span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;"><span style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. </span><span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b). <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2610;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Act). Yes&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';"><ix:nonNumeric name="dei:EntityShellCompany" id="Fact_4a37b7c6f0bb4687a67ecc1d72859ecb" contextRef="c20220101to20221231" format="ixt-sec:boolballotbox">&#x2610;</ix:nonNumeric></span>&#160;&#160; No&#160; <span style="font-size: 8pt; font-family: 'Segoe UI Symbol';">&#x2612;</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">The aggregate market value of the voting and non-voting common equity held by non-affiliates of the Registrant was approximately $<ix:nonFraction name="dei:EntityPublicFloat" id="Fact_faba8ab24e084b77b935bb8082353038" contextRef="c20220630" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">38,300,000</ix:nonFraction> based on the last sale price on June 30, 2022.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">As of February 28, 2023, the number of shares outstanding of the Registrant&#8217;s common stock, par value $0.01 par value, was <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" id="Fact_b1850eece11547fbb6dabc76217113e6" contextRef="c20230228" unitRef="U002" decimals="INF" scale="0" format="ixt:num-dot-decimal">9,935,827</ix:nonFraction>.</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: bold;">DOCUMENTS INCORPORATED BY REFERENCE</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">Portions of the Registrant&#8217;s Definitive Proxy Statement related to its 2023 Annual Meeting of Stockholders (the &#8220;Proxy Statement&#8221;) to be filed with the Securities and Exchange Commission&#160; within 120 days after the Registrant&#8217;s fiscal year end of December 31, 2022 are incorporated by reference into Part III of this Annual Report on Form 10-K.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter"></div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><span style="text-decoration: underline;">TRANSACT TECHNOLOGIES INCORPORATED</span></div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><span style="text-decoration: underline;">INDEX</span></div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 7%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td style="width: 85%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PART I.</div></td>
    <td style="width: 8%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 1.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Business</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 1A.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Risk Factors</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 1B.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unresolved Staff Comments</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 2.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Properties</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 3.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Legal Proceedings</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 4.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Mine Safety Disclosures</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PART II.</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 5.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 6.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">[Reserved]</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 7.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 7A.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Quantitative and Qualitative Disclosures About Market Risk</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">27</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 8.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Financial Statements and Supplementary Data</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">28</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 9.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Changes in and Disagreements with Accountants on Accounting and Financial Disclosure</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">28</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 9A.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Controls and Procedures</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">28</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 9B.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other Information</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">28</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 9C.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Disclosure Regarding Foreign Jurisdictions that Prevent Inspections</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">28</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PART III.</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 10.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Directors, Executive Officers and Corporate Governance</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 11.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Executive Compensation</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 12.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 13.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Certain Relationships and Related Transactions, and Director Independence</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 14.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Principal Accounting Fees and Services</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PART IV.</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 15.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Exhibits and Financial Statement Schedules</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Item 16.</div></td>
    <td style="width: 85%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Form 10-K Summary</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32</div></td>
  </tr>
  <tr>
    <td style="width: 7%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 85%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">SIGNATURES</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Signatures</div></td>
    <td style="width: 8%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; margin-right: 0.8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">33</div></td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">CONSOLIDATED FINANCIAL STATEMENTS</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 8%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" style="width: 92%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Index to Consolidated Financial Statements</div></td>
    <td style="width: 8%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-1</div></td>
  </tr>
</table>
<div><br /></div>
<div class="BRPFPageFooter"></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
</div>
<div class="BRPFPageHeader"></div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><!--PROfilePageNumberReset%Num%1%%%-->Smaller Reporting Company&#8212;Scaled Disclosure</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Pursuant to Item 10(f) of Regulation S K promulgated under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), as indicated herein, we have elected to comply with certain scaled disclosure requirements applicable to &#8220;smaller reporting companies&#8221; in this Annual Report on Form 10-K for the year ended December 31, 2022 (this &#8220;Form 10-K&#8221;).</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">PART I</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Forward-Looking Statements</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">Certain statements included in this Form 10-K may include &#8220;forward-looking statements&#8221; within the meaning of the U.S. federal securities laws, including the Private Securities Litigation Reform Act of 1995. Forward-looking statements are any statements other than statements of historical fact. Forward-looking statements represent current views about possible future events and are often identified by the use of forward-looking terminology, such as &#8220;may,&#8221; &#8220;will,&#8221;, &#8220;expect,&#8221; &#8220;intend,&#8221; &#8220;estimate,&#8221; &#8220;anticipate,&#8221; &#8220;believe,&#8221; &#8220;project,&#8221; &#8220;plan,&#8221; &#8220;design&#8221; or &#8220;continue&#8221; or the negative thereof or other similar words.&#160; Forward-looking statements are subject to certain risks, uncertainties and assumptions.&#160; In the event that one or more of such risks or uncertainties materialize, or one or more underlying assumptions prove incorrect, actual results may differ materially from those expressed or implied by the forward-looking statements.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Important factors and uncertainties that could cause actual results to differ materially from those expressed or implied by the forward-looking statements include, but are not limited to, the following: the adverse effects of current economic conditions, whether due to&#160; the COVID-19 pandemic or otherwise on our business, operations, financial condition, results of operations and capital resources, difficulties or delays in manufacturing or delivery of inventory or other supply chain disruptions, inflation and the Russia/Ukraine conflict, an inability of our customers to make payments on time or at all, diversion of management attention, a possible future reduction in the value of goodwill or other intangible assets, inadequate manufacturing capacity or a shortfall or excess of inventory as a result of difficulty in predicting manufacturing requirements due to volatile economic conditions, price increases or decreased availability of component parts or raw materials, exchange rate fluctuations, volatility of, and decreases in, trading prices of our common stock and the availability of needed financing on acceptable terms or at all; our ability to successfully develop new products that garner customer acceptance and generate sales, both domestically and internationally, in the face of substantial competition; our reliance on an unrelated third party to develop, maintain and host certain web-based food service application software and develop and maintain selected components of our downloadable software applications pursuant to a non-exclusive license agreement, and the risk that interruptions in our relationship with that third party could materially impair our ability to provide services to our food service technology customers on a timely basis or at all and could require substantial expenditures to find or develop alternative software products;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">our ability to successfully transition our business into the food service technology market; risks associated with potential future acquisitions; general economic conditions; our dependence on contract manufacturers for the assembly of a large portion of our products in Asia; our dependence on significant suppliers; our ability to recruit and retain quality employees as the Company grows; our dependence on third parties for sales outside the United States; marketplace acceptance of new products; risks associated with foreign operations; the availability of third party components at reasonable prices; price wars, supply chain disruptions or other significant pricing pressures affecting the Company&#8217;s products in the United States or abroad; increased product costs or reduced customer demand for our products due to changes in U.S. policy that may result in trade wars or tariffs; our ability to protect intellectual property; and other risk factors identified and discussed in Part I, Item 1A, </span>Risk Factors<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">, and Part II, Item 7, </span>Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">, of this Form 10-K and that may be detailed from time to time in the Company&#8217;s other reports filed with the Securities and Exchange Commission (the &#8220;SEC&#8221;).</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">We caution readers not to place undue reliance on forward-looking statements, which speak only as of the date of this Form 10-K.&#160; We undertake no obligation to publicly or otherwise revise any forward-looking statements, whether as a result of new information, future events or other factors, except where we are expressly required to do so by applicable law.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 1. Business.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">The Company</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Technologies Incorporated (together with its consolidated subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;) was incorporated in June 1996 and began operating as a stand-alone business in August 1996 as a spin-off of the printer business that was formerly conducted by certain subsidiaries of Tridex Corporation.&#160; We completed an initial public offering on August 22, 1996.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct is a global leader in developing and selling software-driven technology and printing solutions for high-growth markets including food service technology, point of sale (&#8220;POS&#8221;) automation and casino and gaming.&#160; Our world-class products are designed from the ground up based on market and customer requirements and are sold under the BOHA!&#8482;, AccuDate&#8482;, Epic, EPICENTRAL&#174;, and Ithaca&#174;, brand names.&#160; During 2019, we launched a new line of products for the food service technology market, the BOHA! branded suite of cloud-based applications and companion hardware solutions.&#160; The BOHA! software and hardware products help restaurants, convenience stores and food service operators of all sizes automate the food production in the back-of-house operations.&#160; Known and respected worldwide for innovative designs and real-world service reliability, our thermal printers and terminals generate top-quality labels, coupons and transaction records such as receipts, tickets and other documents.&#160; We sell our technology to original equipment manufacturers (&#8220;OEMs&#8221;), value-added resellers, and select distributors, as well as directly to end users.&#160; Our product distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. We also offer world-class service, support, labels, spare parts, accessories and printing supplies to our growing worldwide base of products currently in use by our customers. Through our TransAct Services Group (&#8220;TSG&#8221;), we provide a complete range of supplies and consumables used in the printing activities of customers in the restaurant and hospitality, retail, casino and gaming, and government markets.&#160; Through our webstore, www.transactsupplies.com, and our direct selling team, we address the demand for these products.&#160; We operate in one reportable segment: the design, development, and marketing of software-driven technology and printing solutions for high growth markets, and provide related services, supplies and spare parts.&#160; Our primary operating, hardware research and development, and U.S. service center is located in Ithaca, New York.&#160; In addition, we have a casino and gaming sales headquarters and software research and development center in Las Vegas, Nevada; a European sales and service center at our subsidiary in the United Kingdom (&#8220;UK&#8221;); and a sales office located in Macau, China.&#160; Our executive offices are located at One Hamden Center, 2319 Whitney Avenue, Suite 3B, Hamden, Connecticut, 06518, with a telephone number of (203) 859-6800.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">1</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Impact of the COVID-19 Pandemic and Global Supply Chain Disruptions</div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures, which have increased our costs and, in some instances, slowed our ability to deliver products to our customers.&#160; During 2021, our inventory levels decreased significantly as a result of these supply chain disruptions, and we experienced significantly lower sales levels.&#160; However, during 2022 we were able to increase our inventory levels and minimize the impact to our customers by successfully modifying our products that were affected by supply chain disruptions, as well as sourcing component parts from alternate suppliers.&#160; Although we were able to increase inventory levels during 2022 and expect to continue to do so in 2023, there can be no assurance that new or continuing supply chain disruptions will not affect our products or that we will be able to make timely modifications to address any future supply chain issues that arise.&#160; Further, while we have offset most of our cost increases by increasing prices of our products, there can be no guarantee that we will be able to offset any future cost increases should they arise.&#160; After a slowdown in the first quarter of 2022 resulting from the Omicron and other variants of COVID-19, we continued to experience demand recovery during the remainder of 2022. Based on our strong backlog position and continued market share expansion, we expect this recovery to continue into 2023, though the exact timing and pace of recovery may be impacted by global economic conditions.</div>
<div><br /></div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2020 and 2021, our gross margin was negatively impacted by significantly lower sales levels from the economic effects of the COVID-19 pandemic, as well as increased material and shipping costs resulting from worldwide supply chain disruptions continuing into 2022.&#160; However, we saw significant improvement in the last nine months of 2022 resulting from significantly higher sales levels and price increases instituted on our products to mitigate higher material and shipping costs.&#160; Though we expect this trend to continue into 2023, our gross margin may be negatively impacted by the economic effects of any future cost increases that cannot be predicted, supply chain disruptions, inflationary pressures and potential new COVID-19 variants on the markets we serve.</div>
<div><br /></div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Although in 2022 we continued to gradually return to more normalized pre-COVID-19 spending levels after implementing a number of cost saving measures in 2020 through 2022, we expect to continue to closely monitor our spending levels as circumstances warrant.</div>
<div><br /></div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since the onset of the COVID-19 pandemic, our top priority has been to ensure the health and safety of our employees while continuing to provide our customers with high-quality, personalized service.&#160; After instituting work-from-home practices in 2020, we transitioned in 2022 to a more flexible hybrid model to accommodate both our employees and the needs of the business.&#160; In addition, even with the transition to a hybrid model, our internal control structure remains operational and unchanged.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Balance Sheet, Cash Flow and Liquidity</div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; margin-bottom: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have taken the following actions to increase liquidity and strengthen our financial position in an effort to mitigate the negative impacts from the COVID-19 pandemic, supply chain disruptions and inflationary pressures:</div>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Public Offerings &#8211; On August 16, 2021, the Company raised net proceeds of $11.2 million (including the exercise of the underwriters&#8217; overallotment option on August 20, 2021), after deducting underwriting discounts, commissions and offering expenses, through an underwritten public offering and sold an aggregate of 842,375 shares of common stock.</div></td>
  </tr>
</table>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP Loan &#8211; On May 1, 2020, the Company was granted a $2.2 million loan (the &#8220;PPP Loan&#8221;) under the Paycheck Protection Program (the &#8220;PPP&#8221;) administered by the Small Business Administration (&#8220;SBA&#8221;) established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security (&#8220;CARES&#8221;) Act, which enabled us to return employees we furloughed earlier in 2020 to full time employment and to restore employees to full pay following certain pay cuts.&#160; On July 8, 2021, we received notice that the PPP Loan had been forgiven as of July 1, 2021.&#160; See Note 8 for further details regarding the PPP Loan.</div></td>
  </tr>
</table>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employee Retention Credit &#8211; Under the provisions of the CARES Act, the Company was eligible for a refundable employee retention credit subject to certain criteria.&#160; In connection with the CARES Act, the Company recognized the employee retention credit during the fourth quarter of 2021 as a $1.5 million &#8220;Gain from employee retention credit&#8221; in the Consolidated Statement of Operations for the year ended December 31, 2021 and recorded a $1.5 million &#8220;Employee retention credit receivable&#8221; in the Consolidated Balance Sheets as of December 31, 2022 and December 31, 2021. We received these funds in the first quarter of 2023.</div></td>
  </tr>
</table>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000; margin-bottom: 0.1pt; margin-top: 0.1pt;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Credit Facility &#8211; On March 13, 2020, we entered into a new credit facility with Siena Lending Group LLC that provides a revolving credit line of up to $10.0 million, subject to a borrowing base and on July 19, 2022, we entered into an amendment to extend the maturity of the facility to March 13, 2025.&#160; See Note 8 for further details regarding this facility.</div></td>
  </tr>
</table>
<div style="margin-top: 0.1pt; margin-bottom: 0.1pt;"><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Reduced Capital Expenditures &#8211; We limited capital expenditures during 2020 and 2021 and gradually increased expenses during 2022 as our sales improved.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Notwithstanding the foregoing, there is no assurance that the actions we have taken in response to the pandemic, global supply chain disruptions and inflation are sufficient or adequate, and we may be required to take additional preventive or responsive measures, as the ultimate extent of the effects of these risks on the Company, our financial condition, results of operations, liquidity, and cash flows are uncertain and are dependent on evolving developments which cannot be predicted at this time.&#160; See Part I, Item 1A, Risk Factors, of this Form 10-K for further discussion of risks related to COVID-19, global supply chain disruptions and inflation.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">2</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Products, Services and Distribution Methods</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Printers, terminals and other hardware:</span> TransAct designs, develops and markets a broad array of transaction-based and specialty printers and terminals utilizing thermal printing technology for applications, primarily in the food service technology, POS automation, casino and gaming, and prior to exiting the market on December 31, 2021, the oil and gas printing markets.&#160; Our printers and terminals are configurable and offer customers the ability to choose from a variety of features and functions.&#160; Options typically include interface configuration, mounting configuration, paper cutting devices, paper handling capacities and cabinetry color.&#160; Our food service technology terminals also offer software configurable menu options and our food service technology market includes sales of optional hardware products including temperature probes, temperature sensors and gateways.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Food Service Technology (&#8220;FST&#8221;): </span>Our primary offering in the food service technology market is our line of BOHA! products, which can combine our latest generation terminal and workstation which includes one or two printers and our BOHA! Labeling, timers, and media software.&#160; In addition, customers may individually purchase cloud-based software applications that connect to a separate application on a separate mobile device into a solution to automate back-of-house operations in restaurants, convenience stores and food service operations. The additional software offering of BOHA! consists of a variety of individually purchased software-as-a-service (&#8220;SaaS&#8221;)-based applications for both Android and iOS operating systems, including applications for, temperature monitoring, temperature taking and checklists and task lists. These applications are sold separately, and customers purchase the applications they need for their back-of-house operations. Customers may also purchase associated hardware, such as handheld devices, tablets, temperature probes and temperature sensors and gateways. The BOHA! Terminal combines<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#xA0;</span>an operating system and hardware components in a device that includes a touchscreen and one or two thermal print mechanisms that print easy-to-read food rotation labels, grab-and-go labels, and nutritional labels for prepared foods, and &#8220;enjoy by&#8221; date labels. The BOHA! WorkStation uses an iPad or Android tablet instead of an integrated touchscreen. The BOHA! Terminal and the BOHA! WorkStation are equipped with the TransAct Enterprise Management System to ensure that only approved touchscreen functions are available on the touchscreen device and to allow over-the-air updates to the operating system. BOHA! helps food service establishments and restaurants (including fine dining, casual dining, fast casual and quick-service restaurants, convenience stores, hospitality establishments and contract food service providers) effectively manage food safety and grab-and-go initiatives, as well as automate and manage back-of-house operations. Recurring revenue from BOHA! is generated by software sales, including software subscriptions that are typically charged to customers annually on a per-application basis, as well as sales of labels, extended warranty and service contracts, and technical support services.&#160; In the food service technology market, we use an internal sales force to solicit sales directly from end users.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">POS automation:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#xA0;</span>In the POS market, we sell a printer utilizing thermal printing technology.&#160; Our POS printer is used primarily by McDonald&#8217;s, and to a lesser extent, other quick-service restaurants located either at the checkout counter or within self-service kiosks to print receipts for consumers or print on linerless labels.&#160; In the POS market, we primarily sell our products through a network of domestic and international distributors and resellers.&#160; We use an internal sales force to manage sales through our distributors and resellers, as well as to solicit sales directly from end-users.</div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Casino and gaming:</span>&#160; We sell several models of printers used in slot machines and video lottery terminals (&#8220;VLTs&#8221;) and other gaming machines that print tickets or receipts instead of issuing coins (&#8220;ticket-in, ticket-out&#8221; or &#8220;TITO&#8221;) at casinos, racetracks and other gaming venues worldwide.&#160; These printers utilize thermal printing technology to print tickets and receipts in monochrome and offer various other features such as jam resistant bezels and a dual port interface that enables casinos to print coupons and promotions.&#160; In addition, we sell printers using thermal roll-fed printing technology for use in international non-casino establishments, including game types such as Amusements with Prizes, Skills with Prizes, Fixed Odds Betting Terminals, sports betting establishments and other off-premise gaming type machines around the world.&#160; We sell our casino and gaming products primarily (1) to slot machine manufacturers, who incorporate our printers into slot machines and, in turn, sell completed slot machines directly to casinos and other gaming establishments and (2) through distributors.&#160; We also maintain a dedicated internal sales force to solicit sales from slot machine manufacturers and casinos, and to manage sales through our distributors.</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We also offer a software solution, the EPICENTRAL Print System, including annual software maintenance, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine. With EPICENTRAL, casinos can utilize the system to create multiple promotions and incentives to either increase customer time spent on the casino floor or encourage additional visits to generate more revenue to the casinos.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">TSG</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:&#160; </span>Through TSG, we proactively market the sale of consumable products (including POS receipt paper, ribbons and other printing supplies), replacement parts, maintenance and repair services, and shipping and handling charges.&#160; Our maintenance services include the sale of extended warranties, multi-year maintenance contracts, a 24-hour guaranteed replacement product service called TransAct Xpress&#8482; and other repair services for our non-FST products.&#160; Within the United States, we provide repair services through our service center in Ithaca, New York.&#160; Internationally, we provide repair services through our European service center located in Doncaster, UK, and through partners strategically located around the world.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We also provide customers with telephone sales and technical support, and a personal account representative to handle orders, shipping and general information.&#160; Technical and sales support personnel receive training on all our products and services.&#160; In addition to personalized telephone and technical support, we also market and sell consumable products 24 hours a day, seven days a week, via our webstore, www.transactsupplies.com.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Sources and Availability of Raw Materials</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We design our products to optimize product performance, quality, reliability and durability.&#160; These designs combine cost efficient materials, sourcing and assembly methods with high standards of workmanship.&#160; Almost all of our printers and terminals are currently produced by a third party manufacturer located in Thailand.&#160; A small portion of our products are assembled in our Ithaca, New York facility largely on a configure-to-order basis using components and subassemblies that have been sourced from vendors and contract manufacturers around the world.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">3</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We procure component parts and subassemblies for use in the assembly of a small portion of our hardware products in Ithaca, New York.&#160; Critical component parts and subassemblies include thermal print heads, printing/cutting mechanisms, power supplies, motors, injection molded plastic parts, LCD screens, circuit boards and electronic components, which are obtained from domestic and foreign suppliers at competitive prices, subject to availability.&#160; As a result of the majority of our production being performed by our contract manufacturers, the majority of our purchases consist of fully assembled printers and terminals produced by our contract manufacturers and, to a much lesser extent, component parts.&#160; We typically strive to maintain more than one source for our component parts, subassemblies and fully assembled printers and terminals to reduce the risk of parts shortages or unavailability.&#160; However, we have experienced and could continue to experience some disruption due to certain suppliers being unable to source specific components and we could experience temporary disruption in the availability of components. In addition, we could experience temporary disruption if certain suppliers ceased doing business with us, as described below.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We currently buy a majority of our thermal print mechanisms, an important component of our thermal printers, and fully assembled printers for substantially all of our printer and food service technology terminal models, from a foreign contract manufacturer in Thailand.&#160; We believe that other contract manufacturers could provide similar thermal print mechanisms or fully assembled printers and terminals, on comparable terms.&#160; We do not have supply agreements with foreign contract manufacturers, and we believe that our supply of thermal print mechanisms and fully assembled printers will be adequate in 2023 and the foreseeable future.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><a id="_Hlk124332677"><!--Anchor--></a>Patents and Proprietary Information</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct relies on a combination of trade secrets, patents, employee and third party nondisclosure agreements, copyright laws and contractual rights to establish and protect its proprietary rights in its products.&#160; As of January 31, 2023, we hold 34 United States and 34 foreign patents and have two foreign patent applications pending pertaining to our products.&#160; The remaining duration of these patents ranges from one to 17 years.&#160; The expiration of any individual patent would not have a significant negative impact on our business.&#160; We regard certain manufacturing processes and designs to be proprietary and attempt to protect them through employee and third party nondisclosure agreements and similar means.&#160; It may be possible for unauthorized third parties to copy certain portions of our products or to reverse engineer or otherwise obtain and use, to our detriment, information that we regard as proprietary.&#160; Moreover, the laws of some foreign countries do not afford the same protection to our proprietary rights as do the laws of the United States. There can be no assurance that legal protections we rely upon to protect our proprietary position will be adequate or that our competitors will not independently develop technologies that are substantially equivalent or superior to our technologies.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Trademarks, Service Marks Trade Names and Copyrights</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We own or have rights to trademarks, service marks, trade names and copyrights that we use in connection with the operation of our business, including our corporate names, logos and website names. Other trademarks, service marks and trade names appearing in this Form 10-K are the property of their respective owners.&#160; The trademarks we own include TransAct&#174;, BOHA!<sup>TM</sup>, AccuDate&#8482;, EPICENTRAL&#174;, Ithaca&#174; and Printrex&#174;. Solely for convenience, some of the trademarks, service marks, trade names and copyrights referred to in this Form 10-K are listed without the &#169;, &#174; and &#8482; symbols, but we will assert, to the fullest extent under applicable law, our rights to our trademarks, service marks, trade names and copyrights.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Seasonality</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restaurants typically reduce purchases of equipment in the fourth quarter due to the increased volume of transactions during the holiday period, which may negatively impact sales of our food service technology products or POS printers.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Working Capital</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventory, accounts receivable, and accounts payable levels, payment terms, and where applicable, return policies are in accordance with the general practices of the industry and standard business procedures.&#160; See also Item 7. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations of this Form 10-K.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Certain Significant Customers</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">IGT is our most significant customer, although to a lesser extent than in previous years, and has been since 1995.&#160; We sell casino and gaming printers and, prior to 2021, online lottery printers to IGT.&#160; On May 29, 2015, we signed an agreement with IGT to sell online lottery and casino printers to IGT on a non-exclusive basis through December 31, 2019.&#160;&#160; We decided not to renew the agreement upon its expiration and to exit the online lottery market.&#160; Although we no longer have an agreement with IGT, we expect to continue selling casino and gaming printers to IGT, as well as spare parts for our remaining, but declining, installed base of lottery printers, in the future.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to IGT represented 10% and 9% of our total net sales for the years ended December 31, 2022 and 2021, respectively.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Backlog</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our backlog of firm orders was approximately $27.5 million as of February 28, 2023, compared to $14.2 million as of February 28, 2022.&#160; The increase in firm orders as of February 28, 2023 compared to February 28, 2022 is due primarily to advance orders placed by our casino and gaming customers due to increased production lead time, resulting from worldwide supply chain shortages caused by the pandemic.&#160; Based on customers&#8217; current delivery requirements, we expect to fill and recognize as revenue $26.9 million of our current backlog during 2023, $0.5 million during 2024 and the remaining balance of the amount during 2025.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Competition</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The market for transaction-based and specialty printers and food service technology terminals is extremely competitive, and we expect such competition to continue in the future.&#160; However, we experience less competition for EPICENTRAL software due to the highly customized nature of the product.&#160; We compete with a number of companies, many of which have greater financial, technical and marketing resources than TransAct.&#160; We believe our ability to compete successfully depends on a number of factors both within and outside our control, including durability, reliability, quality, design capability, product customization, price, customer support, success in developing new products, manufacturing expertise and capacity, supply of component parts and materials, strategic relationships with suppliers, the timing of new product introductions by us and our competitors, general market, economic and political conditions and, in some cases, the uniqueness of our products.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">4</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the food service technology market, we primarily compete with Zenput, Squadle Inc., Jolt Software, Avery Dennison Corporation, Ecolab Inc., ITD Food Safety, CMC Daymark, Integrated Control Corp, Digi International, and Toast.&#160; We compete in this market based largely on our ability to provide highly specialized purpose-built hardware products, different software applications that can be chosen by a customer and ongoing technical support.&#160; We rely upon third party developed software and hosting services combined with our own proprietary hardware and software to offer a unique BOHA! branded solution to support back-of-house operations in the food service industry.&#160; Our competitors or others may develop, or may establish relationships with developers with the capability to develop, software and services that are similar to or competitive with ours, which may be disadvantageous to our competitive position.&#160; Certain portions of our food service technology software are licensed from a third party developer on a non-exclusive basis through 2031 and are subject to a revenue sharing arrangement with the developer. We are reliant upon the third party developer to further develop and maintain its developed software, and the developer controls the software source code. The license agreement does not preclude the developer from working with others on similar products. Also, the third party developer hosts the web-based applications.&#160; Therefore, presently, we are highly dependent upon this third party developer for continued service to our customers and the further development of our food service technology software products.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the POS automation market, we primarily compete with Epson America, Inc., which holds a dominant market position.&#160; We also compete, to a much lesser extent, with Star Micronics America, Inc. and Citizen -- CBM America Corporation.&#160; Certain competitors of ours have greater financial resources and lower costs attributable to higher volume production which enables them to occasionally offer lower prices than us.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the casino and gaming market (consisting principally of slot machine printing, VLT transaction printing and promotional coupon printing), we compete with several companies including JCM Global, Nanoptix, Inc., Custom Engineering SPA, Eurocoin and others.&#160; Certain of our products sold for casino and gaming applications compete based upon our ability to provide highly specialized products, custom engineering and ongoing technical support.&#160; In 2022, we increased our overall market share due largely to our largest competitor&#8217;s inability to supply product due to supply chain issues.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the oil and gas market, our Printrex products competed primarily with the products of Imaging Systems Group, Inc. and Neuralog Inc.&#160; However, we exited the oil and gas market at the end of 2021 in order to shift our focus toward our higher-value, technology enabled food service technology and gaming products.</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The market in which TSG competes is highly fragmented, and we compete with numerous competitors of various sizes, including POS and internet resellers and paper converters depending on the geographic area.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our strategy for competing in our markets is to continually develop and/or license new products (hardware and software), such as launching BOHA! in 2019, and product line extensions that are technologically advanced and provide differentiated features and functions, to increase our market penetration, to take advantage of strategic relationships, and to lower the cost of our products by sourcing certain products overseas.&#160; Although we believe that our products, operations and relationships provide a competitive foundation, there can be no assurance that we will compete successfully in the future.&#160; In addition, our printer products utilize certain thermal printing technologies and licensed software.&#160; If new technologies are introduced, or existing technologies evolve, we may be required to incorporate these technologies into our products.&#160; Alternatively, if such technologies were to become available to our competitors, our printer products could become obsolete, which could have a significant negative impact on our business.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Environmental Compliance</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our compliance with federal, state and local laws and regulations relating to environmental protection and discharge of hazardous materials has not had a material impact on our capital expenditures, earnings or competitive position, and we do not anticipate any material impact from such compliance in the future.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Available Information</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We make available free of charge through the &#8220;Investor Relations&#8221; tab on our Internet website, www.transact-tech.com, our Annual Report on Form 10-K, Quarterly Reports on Form 10-Q, Current Reports on Form 8-K, proxy statements and all amendments to those reports and statements as soon as reasonably practicable after such material is electronically filed with or furnished to the SEC pursuant to Sections 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;).&#160; The SEC maintains an internet site that contains reports, proxy and information statements, and other information regarding issuers that file electronically with the SEC at http://www.sec.gov.&#160; The content on any website referred to in this Form 10-K is not incorporated by reference in this Form 10-K unless expressly noted.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Employees</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022, TransAct and our subsidiaries employed 128 persons, all of whom were full-time employees.&#160; None of our employees are unionized, and we consider our relationships with our employees to be good.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">5</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><a id="_Hlk126740029"><!--Anchor--></a>Information about our Executive Officers</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following is a list of the names and ages of all executive officers of the registrant, indicating all positions and offices with the registrant held by each such person and each person&#8217;s principal occupations and employment during at least the past five years.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 26.26%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Name</div></td>
    <td style="width: 1.01%; vertical-align: bottom;">&#160;</td>
    <td style="width: 7.35%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Age</div></td>
    <td style="width: 1.96%; vertical-align: bottom;">&#160;</td>
    <td style="width: 63.42%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Position</div></td>
  </tr>
  <tr>
    <td style="width: 26.26%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Bart C. Shuldman</div></div></td>
    <td style="width: 1.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 7.35%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">65</div></div></td>
    <td style="width: 1.96%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 63.42%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chief Executive Officer</div></div></td>
  </tr>
  <tr>
    <td style="width: 26.26%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Steven A. DeMartino</div></div></td>
    <td style="width: 1.01%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 7.35%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">53</div></div></td>
    <td style="width: 1.96%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 63.42%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">President, Chief Financial Officer, Treasurer and Secretary</div></div></td>
  </tr>
  <tr>
    <td style="width: 26.26%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tracey S. Winslow</div></div></td>
    <td style="width: 1.01%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 7.35%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">63</div></div></td>
    <td style="width: 1.96%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 63.42%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chief Revenue Officer</div></div></td>
  </tr>
  <tr>
    <td style="width: 26.26%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Brent Richtsmeier</div></div></td>
    <td style="width: 1.01%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 7.35%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58</div></div></td>
    <td style="width: 1.96%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 63.42%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chief Technology Officer</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Bart C. Shuldman has been Chief Executive Officer and a Director of the Company since its formation in June 1996.&#160; Mr. Shuldman served as President of the Company from its formation until June 2010, when he relinquished the President title to focus on new products and markets, international expansion and potential acquisitions.&#160; Mr. Shuldman also served as Chairman of the Board from February 2001 through March 2022.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Steven A. DeMartino was named as TransAct&#8217;s President, Chief Financial Officer, Treasurer and Secretary on June 1, 2010.&#160; Previously, Mr. DeMartino served as Executive Vice President, Chief Financial Officer, Treasurer and Secretary from June 2004 to May 2010, Senior Vice President, Finance and Information Technology from October 2001 to May 2004, Vice President and Corporate Controller from January 1998 to October 2001, and Corporate Controller from August 1996 to December 1997.&#160; Mr. DeMartino is a certified public accountant.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tracey S. Winslow was appointed Chief Revenue Officer of the Company in March 2023 with responsibility for worldwide sales in all of the Company&#8217;s markets.&#160; Prior to this appointment, Ms. Winslow served as Senior Vice President, Casino and Gaming Sales from June 2010 to February 2023, with responsibility for the sales and marketing of all casino and gaming products.&#160; Previously, Ms. Winslow served as Senior Vice President, Sales and Marketing from June 2007 to May 2010, Senior Vice President, Marketing and Sales, POS and Banking with the Company from July 2006 to June 2007, and joined TransAct in May of 2005 as Senior Vice President, Marketing.&#160; Prior to joining TransAct, Ms. Winslow was employed with Xerox Corporation where she held the role of Manager, Worldwide Marketing since 2003, and Manager, Sales Operations from 2000 to 2002.&#160; She joined Xerox Corporation in 1983.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a id="_Hlk98173207"><!--Anchor--></a>Brent Richtsmeier was named as Chief Technology Officer in September 2021.&#160; Previously, Mr. Richtsmeier served as Senior Vice President, Software Engineering since joining TransAct in December 2019 and was appointed as an officer of the Company in January 2021.&#160; Prior to joining TransAct, Mr. Richtsmeier was employed with Samsung, an electronics corporation, from May 2004 until November 2017 as the VP of Development where he was responsible for software strategy, software development at scale and business development.&#160; In November 2017, Samsung Electronics sold their business products division to HP Inc, and Mr. Richtsmeier transferred to HP Inc to become the Global Head of Cloud and Mobile Software Solutions until joining TransAct in 2019.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">There are no family relationships between any of our executive officers and there is no arrangement or understanding between any of such officers and any other person pursuant to which he or she was selected as an officer.&#160; Each of our executive officers was elected by the Board of Directors to hold office until his or her successor is elected and qualified or until his or her earlier resignation or removal.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">6</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 1A. Risk Factors.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Investors should carefully consider the risks, uncertainties and other factors described below, as well as other disclosures in Item 7. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations, because they could have a material adverse effect on our business, financial condition, operating results, and growth prospects.&#160; The risks described below are not the only ones facing our Company.&#160; Additional risks and uncertainties not presently known to us, or that we currently believe to be immaterial, may also impair our business operations.&#160;&#160; In the event that such risks or uncertainties materialize, our business, financial condition, and results of operations could be materially adversely affected.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We assume no obligation (and specifically disclaim any such obligation) to update these Risk Factors or any other forward-looking statements contained in this Form 10-K to reflect actual results, changes in assumptions or other factors affecting such forward-looking statements, except as required by law.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to our Financial Condition and Future Operating Results</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We experienced a net loss in 2020, 2021 and 2022, we anticipate making further investments in product development and may increase expenses in the future, and we may not be able to achieve, maintain or increase profitability in future periods.</div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We incurred a net loss of $5.9 million, $4.0 million and $5.6 million in 2022, 2021 and 2020, respectively, we anticipate making further investments in product development and may increase expenses in future periods, and we may not be able to achieve, maintain or increase profitability in the future. We have expended and expect to continue to expend substantial financial and other resources on developing our food service technology business, including expanding our offerings, developing or acquiring new products and services and increasing our sales and marketing efforts. These efforts may be more costly than we expect and may not result in increased revenue or growth in our food service technology business. Any failure to increase our revenue sufficiently to keep pace with our investments and other expenses could prevent us from achieving, maintaining or increasing profitability or positive cash flow on a consistent basis.&#160; This risk may be exacerbated by current economic conditions, which have resulted and may continue to result in increased costs and may, despite the demand recovery we experienced in 2022, result in decreased demand for our products. If we are unable to successfully address these risks and challenges as we encounter them, our business, financial condition, and results of operations could be adversely affected.</div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our operating results and financial condition may fluctuate.</div>
<div style="text-align: justify; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our operating results and financial condition may fluctuate from quarter to quarter and year to year and are likely to continue to vary due to a number of factors, many of which are not within our control.&#160; If our operating results do not meet the expectations of securities analysts or investors, who may derive their expectations by extrapolating data from recent historical operating results, the market price of our common stock will likely decline.&#160; Fluctuations in our operating results and financial condition may occur due to a number of factors, including, but not limited to, those identified below and throughout this &#8220;Risk Factors&#8221; section:</div>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">delays between our expenditures to develop and market new or enhanced products and consumables and the generation of sales from those products;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">the geographic distribution of our sales and our supply chain;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">market acceptance of our products, both domestically and internationally;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">development of new competitive products by others;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">our responses to price competition;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">our level of research and development activities;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in the amount that we spend to develop, acquire or license new products, consumables, technologies or businesses;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in the amount we spend to promote our products and services;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in the cost of satisfying our warranty obligations and servicing our installed base of products;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">availability of third party components at reasonable prices or at all;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">general economic and industry conditions, including inflation and changes in interest rates affecting returns on cash balances and investments, that affect customer demand;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">the dependence of our supply chain on a few, foreign third party manufacturers and suppliers and the impact on our supply chain of product or component shortages and cost increases due to events beyond our control, including the COVID-19 pandemic, inflation and political or social instability such as the ongoing Russia-Ukraine conflict;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">severe weather events, public health crises, military actions and other external events out of our control that can disrupt our operations or the operations of our customers&#8217; or suppliers&#8217; facilities; and</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in accounting rules.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Due to all of the foregoing factors, and the other risks discussed in this Form 10-K, quarter-to-quarter comparisons of our operating results may not be an indicator of future performance.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">7</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Relating to the COVID-19 Pandemic and Global Political and Economic Conditions</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">The COVID-19 pandemic and the resulting economic conditions have had an adverse impact on our business, operations, financial condition, results of operations and capital resources, as well as on the operations and financial performance of many of our customers and suppliers. We are unable to predict the ultimate extent to which the pandemic and related economic effects will adversely impact our business, operations, financial condition, results of operations, capital resources and the achievement of our strategic objectives.</div>
<div><br /></div>
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures, which have increased our costs and, in some instances, slowed our ability to deliver products to our customers.&#160; During 2021, our inventory levels decreased significantly as a result of these supply chain disruptions, and we experienced significantly lower sales levels until we were able to modify our products that were affected by supply chain disruptions or source component parts from alternate suppliers.&#160; During 2022, we were able to increase our inventory levels and reduce the impact to our customers by modifying certain products that were affected by supply chain disruptions as well as sourcing component parts from alternate suppliers.&#160; However, there can be no assurance that new or continuing supply chain disruptions will not affect our products or that we will be able to make timely modifications or find alternate suppliers to address any future supply chain issues that may arise, or that we will be able to offset any future cost increases, should they arise, by increasing prices of our products.&#160; After a slowdown in the first quarter of 2022 resulting from the Omicron and other variants of COVID-19, we continued to experience demand recovery during the remainder of 2022 and into 2023, but there can be no guarantee that this trend will continue, and the exact timing and pace of recovery may be impacted by global economic conditions. If recovery does not occur at the pace we anticipate, if we cannot offset our cost increases or otherwise manage costs, or if supply chain disruptions cause us to be unable to meet customer demand, this may have a material adverse impact on our business, operations, financial condition, results of operations and capital resources.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, any of the risks and uncertainties set forth in this Form 10-K could be further heightened by the COVID-19 pandemic and the resulting economic effects, which could have a material adverse effect on the Company&#8217;s business, prospects, financial condition, results of operations and capital resources and the achievement of our strategic objectives.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We purchase component parts and consumable products from third party and sole source suppliers, and any interference with this supply chain may impact our ability to manufacture and sell our products.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We rely on third party or sole source suppliers to provide certain key components for our products.&#160; We do not have guaranteed supply contracts with any of our component suppliers, and our suppliers could delay shipments, increase prices or cease manufacturing or selling such components to us at any time, including as a result of the current global microchip shortage.&#160; Such disruptions have resulted in delays in delivery of products to customers and could in the future result in additional delays, even if we are able to source components from alternate suppliers.&#160; Supply chain disruptions have impacted, and could continue to impact, our ability to maintain sufficient inventory on hand.&#160; As a result, we have paid, and may continue to pay, increased shipping charges to expedite our receipt of components and inventory and the delivery of finished products to our customers.&#160; In addition, we have incurred increased costs to obtain certain products and components from alternate suppliers when our usual suppliers did not have products available for us, and we may incur such costs in the future if we need to seek alternate suppliers for any of our components.&#160; Cost increases and component shortages may be exacerbated by events beyond our control, such as changing economic conditions, inflation, currency and commodity price fluctuations, tariffs, resource availability, transportation costs, weather conditions and natural disasters, political unrest and instability, war (such as the ongoing military conflict between Russia and Ukraine) and other factors impacting supply and demand pressures.&#160; Continued or worsening disruptions in the supply chain of such component parts and consumable products could delay our production or release of our new products, cause us to incur additional freight costs and hinder our ability to meet our commitments to customers. If we are unable to obtain sufficient quantity of these components on commercially reasonable terms or in a timely manner, or if we are unable to obtain alternative sources for the components, sales of our products could be delayed or halted entirely or we may have to redesign our products , as we did with certain products in the recent past, to help meet market demand.&#160; There can be no assurance that any cost increases attributable to supply chain disruptions can be fully offset by price increases, or that we will continue to be able to fulfill orders on time, and continued or prolonged impacts on our supply chain may result in lost sales, reduced gross margins or damage to our end-customer relationships, which would have a material adverse effect on our financial results.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Catastrophic events, political unrest or a downturn in economic conditions may disrupt our business.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Geopolitical events, social unrest, war, including repercussions of the recent military conflict between Russia and Ukraine, terrorism, political instability, acts of public violence, boycotts, labor discord or disruptions, hostilities, social unrest, pandemics (in addition to the COVID-19 pandemic), natural disasters or other catastrophic events may cause damage or disruption to our operations, international commerce, and the global economy, and thus could harm our business. In particular, the reactions of governments, markets, and the general public to such events, many of which are beyond our control, may result in a number of adverse consequences for our customers, business, operations, and results of operations.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For example, the continuing military conflict between Ukraine and Russia, as well as the financial and trade-related restrictions associated with Russia and Belarus and economic sanctions on certain individuals and entities in Russia and Belarus, have continued to impact international trade relations, and resulted in sustained increases in the cost of materials and components, while higher oil and other commodity prices have resulted in further increased shipping and transportation costs.&#160; If the conflict persists or escalates, this may further disrupt global supply chains and could result in shortages of key materials or components that our suppliers require to satisfy our needs.&#160; Any increases in the cost, or shortages, of raw materials, components or energy may continue to create supply issues that could constrain manufacturing levels for our products.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">8</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, based on the complex relationships among China, Hong Kong, Taiwan, and the United States, there is risk that political, diplomatic, and national security influences might lead to trade, technology, or capital disputes, or disruptions that may affect our business or suppliers in Asia. These tensions may be exacerbated by continuing sanctions imposed in connection with the Russia&#8211;Ukraine conflict, as there continues to be<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> uncertainty with respect to China&#8217;s willingness to support ongoing or expanded sanctions, which could distance China from its existing trade partners, potentially creating a significant negative impact on our business or on</span> the regional or global economy.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the event of a major earthquake, hurricane or catastrophic event such as fire, power loss, telecommunications failure, cyber-attack, war or terrorist attack, we may be unable to continue our operations and may endure system interruptions, reputational harm, breaches of data security, and loss of critical data, all of which would harm our business, results of operations, and financial condition. In addition, the insurance we maintain would likely not be adequate to cover our losses resulting from disasters or other business interruptions. Any downturn in the economy in general, including the current economic impacts of the COVID-19 pandemic (including inflation relating to supply chain disruptions caused by the pandemic) and the impact of the Russia&#8211;Ukraine conflict, or in the food service or gaming industry in particular could result in a reduced demand for our products and could adversely affect our business and results of operations.&#160; In addition, heightened security measures or responses to hostilities may cause certain governments to restrict the import or export of goods, as has occurred with respect to the export of oil from Russia, which may have an adverse effect on our ability to buy and sell goods or on the cost to obtain components.</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Our Operations</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Overestimates or underestimates in our manufacturing forecasts could cause us to hold insufficient or excess inventory or result in delays in the manufacturing and delivery of our products, which could interfere with our ability to retain orders or provide services to our customers.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">If we fail to predict our manufacturing requirements accurately, we could incur additional costs or experience manufacturing delays. We currently use a rolling 12-month forecast based primarily on our anticipated product orders and our product order history to help determine our requirements for components and materials. It is important that we accurately predict both the demand for our products and the lead-time required to obtain the necessary components and raw materials.&#160; We have also modified our products in the past to substitute available components in the place of those that have become scarce or difficult to obtain, and in some instances have identified alternate sources for certain components.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lead times for materials and components that we order vary significantly and depend on factors such as the specific supplier, the size of the order, contract terms, and demand for each component at a given time, as well as supply shortages with respect to raw materials needed to produce the components. If we underestimate our requirements, or if we are unable to obtain components on time due to supply shortages, as has occurred in the wake of the COVID-19 pandemic and global supply chain disruptions, we may have inadequate manufacturing capacity or inventory, which could interrupt manufacturing of our products and interfere with our ability to timely deliver products to our customers and adversely impact our sales. If we overestimate our requirements, we could have excess inventory of parts and finished products. Some of the actions we have taken to meet customer demand in the face of supply chain disruptions have raised our costs and decreased margins on our products, and any such actions that we take in the future could have a similar effect.&#160; Any future underestimate or overestimate of supply requirements, and any actions we may take in the future to navigate supply chain disruptions, could have a material adverse effect on our business and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We depend on key personnel, the loss of whom could have a material adverse impact on our business.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our future success may depend in significant part upon the continued service of certain key management and other personnel.&#160; There can be no assurance that we will be able to recruit and retain such personnel.&#160; The loss of either Bart C. Shuldman, the Company&#8217;s Chief Executive Officer, or Steven A. DeMartino, the Company&#8217;s President, Chief Financial Officer, Treasurer and Secretary, or the loss of certain groups of key employees, could have a material adverse effect on our business and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our ability to recruit, retain, and develop qualified personnel is critical to our success and growth.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">To successfully compete and grow our business, we must recruit, develop and retain highly qualified managerial, technical and sales and marketing personnel. In addition, we must develop, maintain and, as necessary, implement appropriate succession plans to ensure we have the necessary human resources capable of maintaining continuity in our business.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The market for qualified personnel is competitive, and we may not succeed in recruiting additional personnel or may fail to effectively replace current personnel who depart with qualified or effective successors. Our effort to retain and develop personnel may also result in significant additional expenses, which could adversely affect our profitability.&#160; We are also substantially dependent on our sales force to obtain new customers and increase sales to existing customers. There is significant competition for sales personnel with the skills and technical knowledge that we require. Our ability to achieve significant revenue growth will depend, in large part, on our success in recruiting, training, and retaining a sufficient number of sales personnel to support our growth. If we are unable to hire, train, and retain a sufficient number of qualified and successful sales personnel, our business, financial condition, and results of operations may be harmed.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our food service technology business depends substantially on our customers renewing their subscriptions with the Company. Any decline in our customer renewals could harm our food service technology business, results of operations and financial condition.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our subscription offerings are term-based, and in order for us to maintain or improve our results of operations, it is important that our customers renew their subscriptions with us when the existing subscription term expires and renew on the same terms or terms more favorable to the Company. Our customers have no obligation to renew their applications and subscriptions, and they may not renew one or more of their applications as they are purchased separately and individually.&#160; We also may not be able to accurately predict customer renewal rates. Customers may elect not to renew their subscriptions with us for a variety of reasons, including as a result of changes in their strategic priorities, budgets and costs and, in some instances, due to competing solutions. Our retention rate may also decline or fluctuate as a result of a number of other factors, including our customers&#8217; satisfaction or dissatisfaction with our solutions, the increase in the contract value of subscription and support contracts from new customers, the effectiveness of our customer support services, our pricing, the prices of competing products or services, global economic conditions and the other risk factors described herein. As a result, there can be no assurance that our food service technology customers will renew any or all of their individually purchased application subscriptions.&#160; If our customers do not renew their subscriptions or renew on less favorable terms, our business, results of operations and financial condition may be adversely affected.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">9</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Because we rely in part on revenue from subscription contracts and recognize revenue from subscription contracts over the term of the relevant subscription period, downturns or upturns in sales are not immediately reflected in full in our results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Subscription services revenue accounts for a growing portion of our food service technology revenue. Sales of new or renewal subscription contracts may decline or fluctuate as a result of a number of factors, including customers&#8217; level of satisfaction with our solutions, the prices of our subscriptions, the prices and features of products or subscriptions offered by our competitors, reductions in our customers&#8217; spending levels, or other changes in consumer behavior. If our sales of new or renewal subscription contracts decline, our revenue and revenue growth may decline. We recognize subscription revenue ratably over the term of the relevant subscription period, which is generally 12 months in duration. As a result, much of the subscription revenue we report each quarter is derived from subscription contracts that we sold in prior quarters.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consequently, a decline in new or renewed subscription contracts in any one quarter will not be fully reflected in revenue in that quarter but will negatively affect our revenue in future quarters. Accordingly, the effect of significant downturns in new or renewal sales of our subscriptions is not reflected in full in our results of operations in a given period. Also, it is difficult for us to rapidly increase our subscription revenue through additional sales in any period, as revenue from new and renewal subscription contracts must be recognized ratably over the applicable subscription period. Furthermore, any increases in the average term of subscription contracts would result in revenue for those subscription contracts being recognized over longer periods of time.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">If we fail to offer high quality support, our business and reputation could suffer.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our customers rely on us and our third party service providers for support of our software and services included in our food service technology subscription packages. High-quality support is important for the renewal and expansion of our agreements with existing customers. The importance of high-quality support will increase as we expand our business and pursue new customers. If we or our third party service providers do not help our customers quickly resolve issues and provide effective ongoing support, our ability to sell new food service technology products to existing and new customers could suffer and our reputation and relationships with existing or potential customers could be harmed.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We experience elements of seasonal fluctuations in the food service technology and POS markets which could cause our stock price to fluctuate.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our food service technology business is highly dependent on the behavior patterns of our customers and their guests. Restaurants typically reduce purchases of equipment in the fourth calendar quarter due to the increased volume of transactions during the holiday period, which may negatively impact sales of our food service technology products or POS printers during that period. As a result, seasonality may cause fluctuations in our financial results, and other trends that develop may similarly impact our results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Intellectual Property and Data Security</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Cyber-security and privacy breaches, cyber-attacks, or other disruptions could expose us to liability, affect our business, and damage our reputation.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We are increasingly dependent on our information technology systems and infrastructure for our business. We collect, store, and transmit sensitive information including intellectual property, proprietary business information and personal information of employees and, to a lesser extent, customers in connection with business operations. The secure maintenance of this information is critical to our operations and business strategy. Some of this information could be an attractive target of criminal attack by third parties with a wide range of motives and expertise, including organized criminal groups, disgruntled current or former employees, and others. Cyber-attacks are of ever-increasing levels of sophistication, and despite our extensive security measures, our information technology and infrastructure may be vulnerable to such attacks or may be breached, including due to employee error or malfeasance.&#160; Further, our BOHA! applications are hosted within cloud platforms that are managed by third parties.&#160; Any such breach could compromise our networks and the information stored there could be accessed, publicly disclosed, lost or stolen, and our business operations may be interrupted. If our systems become compromised, we may not promptly discover the intrusion. Like other companies in our industry, we have experienced attacks to our data and systems, including malware and computer viruses that we have been able to detect and eliminate.&#160; However, as disclosed on November 16, 2022, a criminal cybersecurity incident impacted our operational and information technology systems. The Company worked with a team of forensic experts to fully understand the extent and implications of this incident and we fully restored operations within a remediated environment. If our systems fail or are breached or disrupted by other future attacks, we could lose product sales, and suffer reputational damage and loss of customer confidence. Such incidents could require notification to affected individuals and may result in legal claims or proceedings and liability under federal and state laws that protect the privacy and security of personal information. If third parties use a cyber-attack to gain access to our proprietary information, they may sell it or use it to duplicate our products, which could put us at a competitive disadvantage. Any one of these events could cause our business to be materially harmed and our results of operations to be adversely impacted, and there can be no assurance that the insurance that we maintain to address certain aspects of cyber-security risks will be sufficient to cover all losses or all types of claims that may arise.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">These risks may be exacerbated by global political unrest.&#160; For example, the Russia&#8211;Ukraine conflict and related sanctions imposed by the U.S. government may expose government entities and public and private U.S. companies to attempted or actual cyber-security attacks launched in retaliation, and these attacks could materially disrupt our supply chain or our systems and operations or those of our customers and suppliers.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">10</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">The inability to protect our intellectual property rights could harm our reputation, damage our business or interfere with our competitive position.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our intellectual property is valuable and provides us with certain competitive advantages.&#160; Copyrights, patents, trademarks, service marks, trade secrets, technology licensing agreements, nondisclosure agreements and contracts are used to protect these proprietary rights. Despite these precautions, it may be possible for third parties to copy aspects of our products or, without authorization, to obtain and use information that we regard as trade secrets.&#160; Our pending patents may be denied, and our patents may be circumvented by our competitors. In addition, the laws of some foreign countries do not protect our proprietary rights as fully as do the laws of the United States. There can be no assurance that our means of protecting our proprietary rights in the United States or abroad will be adequate or that competing companies will not independently develop similar technologies. Our failure to adequately protect our proprietary rights could have a material adverse effect on our competitive position and our business.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Prosecuting or defending against intellectual property litigation could be time consuming and costly, and an claims that we have infringed upon the intellectual property rights of others could impede our business and put us at a competitive disadvantage.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Prosecuting and defending against intellectual property litigation is generally complex, costly, protracted, and highly disruptive to business operations by diverting the attention and energies of management and key technical personnel.&#160; We are committed to aggressively asserting and defending our technology and related intellectual property rights, which we have spent a significant amount of money to develop.&#160; Similarly, third parties have claimed and may claim, from time to time in the future, that we have violated their intellectual property rights. In the event that a court rules that we have violated a third party&#8217;s patent or other intellectual property rights, we may be prevented from operating our business as planned and may be required to pay damages, to obtain a license, if available, or to use a non-infringing method, if possible, to accomplish our objectives. Any such claims could result in costly litigation and, if successful, could result in costly judgments or settlements, and there can be no assurance that a license or a substitute technology will be available on favorable terms, or at all. Any such outcome could have a material adverse effect on our business, financial condition and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Product Development</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our revenue and profitability depend on our ability to continue to develop or license, on a timely basis, new products and technologies which are free from hardware or software anomalies and cannot be fraudulently manipulated, and customer acceptance of such products.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our success depends upon our and our development partners&#8217; ability to timely adapt our capabilities and processes to meet the demands of producing new and innovative products.&#160; Because our newer products contain software and generally are more technologically sophisticated than those we have produced in the past, we must continually refine our capabilities to meet the needs of our product innovation.&#160; If we cannot efficiently adapt our infrastructure to meet the needs of our product innovations in a timely manner, our business could be negatively impacted.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Developers, on our behalf, successfully develop such products, there is no assurance that our innovations will be accepted by our customers.&#160; Developing and marketing new products, such as our line of BOHA! products, is costly, and our business could be materially adversely affected if we are unable to generate sales of such products or if our existing or new customers do not quickly accept such products.&#160; Customer acceptance is crucial because new products typically have little competition and market penetration due to their novelty.&#160; Customer acceptance of new products is never assured and may take time to materialize, even with respect to products developed with customer input.&#160; Further, technological innovation often results in unintended consequences such as bugs, vulnerabilities, and other system failures. Any such bug, vulnerability, or failure, especially in connection with a significant technical implementation or change, could result in lost business, harm to our brand or reputation, consumer complaints, and other adverse consequences, any of which could materially adversely affect our business, results of operations, and financial condition.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Our Partners and Suppliers</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We rely on an unrelated third party to develop, maintain and host certain portions of our food service technology software, and any disruption in the relationship with that third party, or any defects in the software provided by that third party, could have a material adverse effect on our reputation, business, financial condition and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We rely upon third party developed software and hosting services combined with our own proprietary hardware and software to offer our unique BOHA! branded solution to support back-of-house operations in the food service industry.&#160; Certain web-based food service application software and selected components of our downloadable software applications are licensed from a third party developer on a non-exclusive basis through 2031 and are subject to a revenue sharing arrangement with the developer. We are reliant upon the third party developer to further develop and maintain its developed software, and the developer controls the software source code.&#160; Therefore, presently, we are highly dependent on this third party developer for continued service to our customers and the further development of our food service technology software products.&#160; If the software provider were to terminate operations or otherwise be unavailable to provide maintenance, hosting and development services to us and our customers, the availability or usage of our software products could be disrupted and our customers could be adversely affected.&#160; In any such case, we may need to seek comparable software and services from other third parties or develop it internally, which could require significant time and expense. There can be no assurance that such software or services would be available from other sources, or that if available, they would be of comparable quality and cost.&#160; Moreover, any efforts to develop new software, whether internal or by third-parties, would require significant lead time, and there could be an interruption in service during any period in which the software provider ceases to provide products and services and new products remain under development. Any such occurrence could materially and adversely impact our business, financial condition and results of operations.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Any errors or defects in, or failures of, third party software or applications could result in errors or defects in or failures of our food service technology products and services, which could be costly to correct and have a material adverse effect on our reputation, business, financial condition and results of operations.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">11</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div style="text-align: left;"><a id="_Hlk126660532"><!--Anchor--></a><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We are currently dependent upon a manufacturer located in Thailand for the manufacturing and assembly of a substantial portion of our printers and terminals, and any further or future disruption in the businesses or operations of this manufacturer, such as those caused by the COVID-19 pandemic, political, social or economic instability, war, trade restrictions or tariffs, severe weather, changes in climate, additional public health crises and other events out of our control could materially adversely affect our business, financial condition and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In an effort to maximize cost savings and operation benefits, we have outsourced substantially all of the manufacturing and assembly of our printers and terminals to a contract manufacturer located in Thailand.&#160; As a result, we are dependent on them for the manufacturing of our products, and any disruption in such manufacturing or the export of products from this manufacturer to the U.S. may adversely affect our business, financial condition and results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Risks affecting the businesses and operations of our manufacturer in Thailand include: political and regional strife; war; labor shortages; severe weather and natural disasters such as earthquakes, hurricanes, fires, and floods, whether as a result of climate change or otherwise; lengthy power outages; increased pricing, financial instability and capacity constraints of shippers; government imposition of tariffs which may impact the cost or availability of products or components that we purchase; and concerns with or threats of public health crises, contagious diseases or health epidemics.&#160; Though we are seeking a second source, the risk to our business posed by any disruption in manufacturing is exacerbated by the concentration of substantially all of our manufacturing operations in one manufacturer located in Thailand.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">If the contract manufacturer is unable to manufacture our products or continue operating their facilities, as occurred in connection with the COVID-19 pandemic, we will have limited means for the final assembly of a majority of our products until we are able to secure the manufacturing capability at another facility or develop an alternative manufacturing facility, which could be costly and time consuming and have a material adverse effect on our operating and financial results.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We may also incur increased business continuity and reputational risks to the extent that we continue to outsource the manufacturing and assembly of our products to foreign third party service providers.&#160; For example, outsourcing of manufacturing prevents us from exercising control over the assembly of certain of our products and related operations or processes, including the internal controls associated with operations and processes conducted and the quality of our products assembled by contract manufacturers.&#160; If we are unable to effectively manage and oversee our outsourcing strategy, we may not realize cost structure efficiencies and our operating and financial results could be materially adversely affected.&#160; Outsourcing also exposes us to increased risk of infringement or misappropriation of our intellectual property, to which our manufacturers have access.&#160; Because our manufacturer is located in Asia, there is no guarantee that our intellectual property rights will be protected or enforced to the same extent as under U.S. federal and state laws. Consequently, we may not be able to prevent third parties from developing or selling products made using our technologies.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We rely on distributors and resellers to sell our products and services.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use a variety of distribution channels, including OEMs and distributors, to market and sell our products and services.&#160; We may be adversely impacted by any conflicts that could arise between and among our various sales channels.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our dependence upon distributors and resellers exposes us to numerous risks, including:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">loss of channel and the ability to bring new products to market;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">concentration of credit risk, including disruption in distribution should the distributors, and / or resellers&#8217; financial condition deteriorate;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">reduced visibility to end user demand and pricing issues which makes forecasting more difficult;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">distributors or resellers leveraging their buying power to change the terms of pricing, payment and product delivery schedules; and</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">direct competition should a distributor or reseller decide to manufacture printers internally or source printers from a competitor.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: left; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We cannot guarantee that resellers will not reduce, delay or eliminate purchases from us, which could have a material adverse effect upon the business, consolidated results of operations and financial condition.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We currently rely on third party service providers to host our food service technology software and deliver certain services, and any interruptions or delays in services from these third parties could impair the delivery of our products and services, and our business, results of operations, and financial condition could be materially adversely affected.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We rely on a third party service provider to host our food service technology software. Third parties also provide services to key aspects of our operations, including Internet connections and networking, data storage and processing, trust and safety and security infrastructure.&#160; We do not control the operation, physical security, or data security of any of these third party providers. Our efforts to use commercially reasonable diligence in the selection and retention of such third party providers may be insufficient or inadequate to prevent or remediate such operational and security risks. Our third party providers may be subject to intrusions, computer viruses, denial-of-service attacks, sabotage, acts of vandalism, acts of terrorism or other misconduct. They are vulnerable to damage or interruption from power loss, telecommunications failures, fires, floods, earthquakes, hurricanes, tornadoes, and similar events, and they may be subject to financial, legal, regulatory, and labor issues, each of which may impose additional costs or requirements on us or prevent these third parties from providing services to us or our customers on our behalf. From time to time, our software maintained by these third parties has experienced brief interruptions in service which we have been able to resolve promptly by working with the third-party providers, and there may be future such interruptions that could have a material adverse effect on our customer relationships or be more costly or time-consuming to resolve.&#160; In addition, these third parties may breach their agreements with us, disagree with our interpretation of contract terms or applicable laws and regulations, refuse to continue or renew these agreements on commercially reasonable terms or at all, fail to or refuse to process transactions or provide other services adequately, take actions that degrade the functionality of our platform and services, increase prices, impose additional costs or requirements on us or our customers, or give preferential treatment to our competitors. If we are unable to procure alternatives in a timely and efficient manner and on acceptable terms, or at all, we may be subject to business disruptions, losses, or costs to remediate any of these deficiencies. The occurrence of any of the above events could result in reputational damage, legal or regulatory proceedings, loss of customers or other adverse consequences, any of which could materially adversely affect our business, results of operations, and financial condition.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">12</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Competition, Sales and Marketing</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We compete in highly competitive markets, which are likely to become more competitive. Competitors may be able to respond more quickly to new or emerging technology and changes in customer requirements.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We face significant competition in developing and selling our printers, terminals, software, consumables and services.&#160; Our principal competitors have substantial marketing, financial, development and personnel resources.&#160; To remain competitive, we believe we must continue to provide:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">technologically advanced products that satisfy user demands;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">superior customer service;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">high levels of quality and reliability; and</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">dependable and efficient distribution networks.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We cannot ensure we will be able to compete successfully against current or future competitors.&#160; Increased competition may result in price reductions, lower gross profit margins and loss of market share, and could require increased spending on research and development, sales and marketing and customer support.&#160; Some competitors may make strategic acquisitions or establish cooperative relationships with suppliers or companies that produce complementary products, which may include relationships with our software developer.&#160; Any of these factors could reduce our earnings.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our food service technology market operates in an emerging and evolving industry, which makes it difficult to evaluate the future prospects of this market.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We launched our BOHA! offering in 2019 and have grown our food service technology significantly since then.&#160; This is still an emerging market that is continually evolving as technology develops to automate back-of-house tasks that were historically performed manually.&#160; This evolving nature of the food service technology market may make it difficult to evaluate our future prospects in this market and the risks and challenges we may encounter. These risks and challenges include, but are not limited to, our ability to:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">accurately forecast our revenue and plan our operating expenses;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">increase the number of customers (and retain existing customers and their guests) using our platform;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">successfully compete with current and future competitors;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">successfully expand our market presence business in existing markets and enter new markets and geographies;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">maintain and enhance the value of our reputation and brand;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">adapt to rapidly evolving trends in the ways our customers interact with technology;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">timely respond to customer needs with technology developments that enable our products to evolve to meet the changing demands of the marketplace;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">avoid interruptions or disruptions in our service;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">manage the risk of loss relating to food safety issues if there is a failure of our offerings designed to help in part to help assure perishable goods are safely preserved;</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Our Customers</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We are dependent on sales to one large customer; the loss of this customer or reduction in orders from this customer could materially affect our sales.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming sales and lottery printer spare parts sales to IGT represent a material percentage of our net sales.&#160; A reduction, delay or cancellation in orders from this customer, including reductions or delays due to market, economic, or competitive conditions in the industries in which we serve, could have a material adverse effect upon our results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Growth and Strategic Transactions</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our success will depend on our ability to sustain and manage growth.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As part of our business strategy, we intend to pursue a growth strategy.&#160; Assuming this growth occurs, it will require the expansion of customer relationships in domestic and international markets, the successful development and marketing of new products for our existing and new markets, expanded internal sales and marketing, customer service and support, and the continued implementation and improvement of our operational, financial and management information systems.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">To the extent that we seek growth through acquisitions, our ability to manage our growth will also depend on our ability to integrate businesses that have previously operated independently.&#160; We may not be able to achieve this integration without encountering difficulties or experiencing the loss of key employees, customers or suppliers.&#160; It may be difficult to design and implement effective financial controls for combined operations and differences in existing controls for each business may result in weaknesses that require remediation when the financial controls and reporting functions are combined.&#160; If we pursue acquisitions, we may incur legal, accounting and other transaction-related expenses for unsuccessful acquisition attempts that could adversely affect our results of operations in the period in which they are incurred. There is no guarantee that any acquisitions will be accretive, or that future acquisitions will not result in additional impairments or write-downs.&#160; The existence of one or more material liabilities of an acquired company that are unknown to us at the time of acquisition could result in our incurring those liabilities.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">13</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">There can be no assurance that we will be able to successfully implement a growth strategy, or that we can successfully manage expanded operations, if they occur.&#160; If we expand, we may from time-to-time experience constraints that will adversely affect our ability to satisfy customer demand in a timely fashion.&#160; Failure to manage growth effectively could adversely affect our results of operations and financial condition.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We may not be able to successfully identify and execute future acquisitions, dispositions or other strategic transactions or to successfully manage the impacts of such transactions on our operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Acquisitions, dispositions and other strategic transactions involve a number of risks, including: (i) the potential disruption of our ongoing business; (ii) the distraction of management away from the ongoing oversight of our existing business activities; (iii) incurring additional indebtedness or issuing equity that may be dilutive to existing stockholders; (iv) the anticipated benefits and cost savings of those transactions not being realized fully, or at all, or taking longer to realize than anticipated; (v) an increase in the scope and complexity of our operations; (vi) the loss or reduction of control over certain of our assets; and (vii) the depletion of cash to pay for an acquisition. There can be no assurance that we will find suitable opportunities for strategic transactions at acceptable prices, have sufficient capital resources to pursue such transactions, be successful in negotiating required agreements, or successfully close transactions after signing such agreements. A strategic transaction may result in a significant change in the nature of our business, operations and strategy, and we may encounter unforeseen obstacles or costs in implementing a strategic transaction or integrating any acquired business into our operations.&#160; We cannot predict the number, timing or size of future strategic transactions, if any, or the effect that any such transactions might have on our operating results.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Our International Operations</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">In addition to maintaining offices in the UK and Macau, we sell and ship a significant portion of our products internationally and rely on third parties that make up part of our global salesforce.&#160; The international nature of our operations may expose us to certain risks associated with doing business outside of the U.S., including risks posed by tariffs and changes in trade relations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We sell a significant amount of our products to customers outside the United States. Shipments to international customers are expected to continue to account for a material portion of net sales. In addition, our manufacturer and suppliers are largely located in Asia.&#160; As a result, our products are largely exported to one of our facilities in the United States, which makes our operations vulnerable to disruptions in trade that could adversely affect our business results.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our international operations, including our reliance on manufacturers and suppliers located in Asia, our worldwide sales team, and our sales to customers located outside the United States, expose us to disruptions in trade and other associated risks such as:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">the imposition of additional duties, tariffs, quotas, taxes, trade barriers, capital flow restrictions and other charges on imports and exports by the United States or the governments of the countries in which we or our manufacturers and suppliers operate;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">delays in the delivery of cargo due to port security considerations, labor disputes such as dock strikes, and our reliance on a limited number of shipping and air carriers, which may experience capacity issues that adversely affect our ability to ship inventory in a timely manner or for an acceptable cost;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">fluctuations in the value of the U.S. Dollar against foreign currencies, which could restrict sales, or increase costs of purchasing, in foreign countries;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">economic or political instability in any of the countries in which we or our manufacturers or suppliers operate, which could result in a reduction in demand for our products due to political and economic instability or impair our foreign assets;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">a reduced ability or inability to sell in or purchase from certain markets as a result of export or import restrictions;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">potentially limited intellectual property protection in certain countries, such as China, may limit recourse against infringing products or cause us to refrain from selling in certain geographic territories;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">reliance on a limited number of shipping and air carriers who may experience capacity issues that adversely affect our ability to ship inventory in a timely manner or for an acceptable cost; and</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">economic uncertainties and adverse economic conditions (including inflation and recession).</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Although we carry business interruption insurance to cover lost revenue and profits in an amount we consider adequate, this insurance does not cover all possible situations.&#160; In addition, the business interruption insurance would not compensate us for the loss of opportunity and potential adverse impact, both short-term and long-term, on relations with our existing customers resulting from our inability to produce products for them.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to Regulations, Taxation, Governance and the Environment</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">If market conditions deteriorate or future results of operations are less than expected, a valuation allowance may be required for all or a portion of our deferred tax assets.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We currently have deferred tax assets, which may be used to reduce taxable income in the future.&#160; We assess the realization of these deferred tax assets on a quarterly basis, and if we determine that it is more likely than not that some portion of these assets will not be realized, an income tax valuation allowance is recorded.&#160; If market conditions deteriorate or future results of operations are less than expected, or there is a change to applicable tax rules, future assessments may result in a determination that it is more likely than not that some or all of our net deferred tax assets are not realizable.&#160; As a result, we may need to establish a valuation allowance for all or a portion of our net deferred tax assets, which may have a material adverse effect on our business, results of operations and financial condition.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">14</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-top: 12pt; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Changes in tax rates or tax liabilities could affect results.</div>
<div style="text-align: justify; margin-top: 12pt; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We are subject to taxation in the United States and certain state and foreign jurisdictions. Significant judgment is required to determine and estimate our tax liabilities. Our future annual and quarterly tax rates could be affected by numerous factors, including changes in the (1) applicable tax laws; (2) composition of earnings in countries with differing tax rates; or (3) recoverability of our deferred tax assets and liabilities. Beginning in 2022, the U.S. Tax Cuts and Jobs Act of 2017 (&#8220;TCJA&#8221;) eliminated the existing option to deduct research and development expenditures and requires taxpayers to amortize them over five years pursuant to IRC Section 174. The requirement is not expected to materially impact our cash flows.&#160; In August 2022, the United States enacted the Inflation Reduction Act of 2022 (&#8220;IRA&#8221;) which includes a new 15% corporate minimum tax as well as a 1% excise tax on fair value of corporate stock repurchases made after December 31, 2022. The IRA is not expected to impact our tax position.&#160; Any of these developments or any future changes in federal, state, or international tax laws or tax rulings could adversely affect our effective tax rate and our results of operations.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Risks Related to our Indebtedness</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">The agreement governing our credit facility contains restrictions and limitations that could significantly affect our ability to operate our business, as well as significantly affect our liquidity.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The loan and security agreement (the &#8220;Loan Agreement&#8221;) governing the Siena Credit Facility contains a number of significant covenants that could adversely affect our ability to operate our business, our liquidity, and our results of operations. These covenants restrict, among other things, our ability, and the ability of any future domestic subsidiary, to:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">merge, consolidate, form subsidiaries or dispose of assets;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">acquire assets outside the ordinary course of business;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">enter into other transactions outside the ordinary course of business;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">sell, transfer, return or dispose of collateral;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">make loans to or investments in, or enter into transactions with, affiliates;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">incur or guarantee indebtedness, incur liens;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">redeem equity interests while borrowings are outstanding under the credit facility;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">change our capital structure; or</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">dissolve, divide, change our line of business or cease or suffer a disruption to all or a material portion of our business.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additionally, the Loan Agreement requires us to comply with a minimum excess availability covenant, which requires excess borrowing availability of at least $750 thousand and the Loan Agreement requires us to maintain outstanding borrowings of at least $2,250,000 in principal amount. The breach of any covenants or obligations in the Loan Agreement, if not otherwise waived or amended, could result in a default under the Loan Agreement and could trigger acceleration of our obligations thereunder and permit the lender to foreclose on the collateral securing our obligations under the Loan Agreement and exercise other rights of secured creditors.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Availability under the Siena Credit Facility is subject to a borrowing base, which is based on eligible accounts receivable and inventory. To the extent that our eligible accounts receivable and inventory decline in value, our borrowing base will decrease, and the availability under the Siena Credit Facility currently is and may continue to be less than its stated amount and may decrease. In addition, if at any time the amount of outstanding borrowings and letters of credit under that facility exceeds the borrowing base, we are required to prepay borrowings and/or cash collateralize letters of credit sufficient to eliminate the excess.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our ability to comply with the covenants under the Loan Agreement or to maintain our borrowing base may be affected by events beyond our control, including deteriorating economic conditions.&#160; For example, reductions in the value of accounts receivable and inventory may occur in the future due to decreases in sales and production resulting from the impact of future economic uncertainties.&#160; Further, certain slow-moving inventory and accounts receivable that remain unpaid for a specified period of time are excluded from the borrowing base calculation. Thus, a decline in economic conditions and/or a decline in the financial condition of customers in the industries we serve may negatively impact the borrowing base both by decreasing the value of existing accounts and reducing the number and amount of new accounts. If we overestimate our inventory needs due to the uncertainty surrounding future economic conditions, we may have inventory that is considered slow-moving and thus excluded from the borrowing base calculation, and any reduction in production in response to decreased demand would also result in a lower inventory value and thus a lower borrowing base.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Any of these events could require us to seek waivers or amendments of covenants or alternative sources of financing or to reduce expenditures. We cannot assure you that such waivers, amendments or alternative financing could be obtained, or if obtained, would be on terms acceptable to us, or that we would be able to reduce expenditures enough to offset any decrease in the borrowing base, or that we could make such reductions without a material negative impact on our business.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">General Risk Factors</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">General economic conditions could have a material adverse effect on our business, operating results and financial condition.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our business is subject to general economic conditions.&#160; Uncertainty or negative trends in U.S. or international economic and investment climates, including the impact of developments in U.S.-China trade relations, as well as economic impacts from the Russia-Ukraine conflict and the current inflation surge attributable in part to supply chain disruptions, could adversely affect our business.&#160; For example, customers or potential customers could reduce or delay orders, key suppliers could become insolvent, which could result in production delays, and our customers may become insolvent or be unable to obtain credit.&#160; Any of these possible effects could impact our ability to effectively manage inventory levels and collect receivables, create unabsorbed costs due to lower net sales, and ultimately decrease our net sales and profitability including write-downs of assets.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">15</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our stock price may fluctuate significantly.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The market price of our common stock could fluctuate significantly in response to variations in quarterly operating results and other factors, such as:</div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">prevailing domestic and international market and economic conditions, and conditions in the industries we serve, including current market volatility, inflation and rising interest rates and the ongoing economic impact of the COVID-19 pandemic;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">adverse business conditions faced by customers, or bankruptcies or store closures of our customers resulting from adverse economic conditions due to inflation, resurgences or new variants of COVID-19 or otherwise;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in our business, operations or prospects;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">developments in our relationships with our customers or strategic partners;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">announcements of new products or services by us or by our competitors;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">announcement or completion of acquisitions by us or by our competitors;</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">changes in existing, or adoption of additional, government regulations; and</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">unfavorable or reduced analyst coverage.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the stock market may experience significant price fluctuations year-to-year.&#160; Broad market fluctuations, general economic conditions and specific conditions in the industries in which we operate may adversely affect the market price of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Unfavorable analyst coverage or a reduction in analyst coverage of our common stock may adversely affect the price of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The trading market for our common stock relies in part on the research and reports that industry or financial analysts may publish about us, our business, our markets and our competitors. We currently have limited analyst coverage, and many investment banks no longer find it profitable to provide securities research on micro-cap and small-cap companies.&#160; If securities analysts do not cover our common stock in the future, the lack of research coverage may adversely affect the market price of our common stock. Furthermore, if one or more of the analysts who cover us downgrade our stock, or if those analysts issue other unfavorable commentary about us or our business, our stock price may decline.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our common stock is traded on the Nasdaq Global Market.&#160; During the year ended December 31, 2022, the average daily trading volume for our common stock as reported by the Nasdaq Global Market was approximately 38,000 shares.&#160; We are uncertain whether a more active trading market in our common stock will develop.&#160; As a result, relatively small trades may have a significant impact on the market price of our common stock, which could increase the volatility and depress the price of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our common stock is thinly traded, and investors may be unable to sell their shares at their desired prices, or at all, and sales of large blocks of shares may adversely affect the price of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our common stock has historically been sporadically or &#8220;thinly&#8221; traded, meaning that the number of persons interested in purchasing shares of our common stock at prevailing prices at any given time may be relatively small. This could lead to wide fluctuations in our share price. Investors may be unable to sell their common stock at or above their purchase price, which may result in substantial losses. As a consequence of this lack of liquidity, the trading of relatively small quantities of shares by our stockholders may disproportionately influence the price of shares of our common stock in either direction. The price of shares of our common stock could, for example, decline precipitously in the event a large number of shares of our common stock are sold on the market without commensurate demand, while an issuer with a more robust daily trading volume for its common stock might better absorb those sales without an adverse impact on its share price.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">If we raise additional capital in the future, existing shareholder ownership interest in the Company could be diluted or otherwise adversely impacted, and future sales of our common stock or other financing arrangements may cause our stock price to decline.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the future, we may sell additional shares of our common stock in public or private offerings, or we may obtain funds through a credit facility or by issuing debt or preferred securities. We may also issue additional shares of our common stock to finance future acquisitions. Shares of our common stock are also available for future issuance and sale pursuant to stock options and other equity awards that we have granted to our employees, and in the future, we may grant additional stock options, restricted stock units and other forms of equity compensation to our employees. Any issuance of equity we may undertake in the future to raise additional capital could cause the price of our common stock to decline, or require us to issue shares at a price that is lower than that paid by holders of our common stock in the past, which would result in those newly issued shares being dilutive. Sales of our common stock or the perception that such sales could occur may adversely affect prevailing market prices for shares of our common stock and could impair our ability to raise capital through future offerings. The lender under our existing debt agreement has rights that are senior to your rights as a common stockholder, and if we obtain funds in the future through a credit facility or through the issuance of debt or preferred securities, the lenders of such facility or the holders of such securities would likely also have rights senior to the rights of our common stockholders, which could impair the value of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We do not intend to pay dividends for the foreseeable future, so investors must rely on price appreciation to realize a gain on their investment.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In January 2020, we announced the cessation of our quarterly cash dividend to accelerate our investment in BOHA!.&#160; We have not declared or paid cash dividends on our capital stock since November 2019 and do not intend to pay any cash dividends in the foreseeable future. We currently intend to retain any future earnings to finance the operation and expansion of our food service technology business, and we do not anticipate declaring or paying any dividends to holders of our common stock in the foreseeable future. Any determination to pay dividends in the future will be at the discretion of our board of directors. Accordingly, investors must rely on sales of their common stock after price appreciation, which may never occur, as the only way to realize future gains on their investments.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">16</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We cannot provide any assurance that current laws, or any laws enacted in the future, will not have a material adverse effect on our business.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our operations are subject to laws, rules, regulations, including environmental regulations, government policies and other requirements in a variety of jurisdictions, including those which we conduct business.&#160; Changes in such laws, rules, regulations, policies or requirements could result in the need to modify our products and could affect the demand for our products, which may have an adverse impact on our future operating results.&#160; If we do not comply with applicable laws, rules and regulations we could be subject to costs and liabilities and our business may be adversely impacted.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">We take advantage of specified scaled disclosure requirements applicable to a &#8220;smaller reporting company&#8221; under Regulation S-K, and the information that we provide to stockholders may therefore be different than they might receive from other public companies. If some investors find our shares of common stock less attractive as a result of this scaled disclosure, there may be a less active trading market for our shares of common stock, which may increase the volatility of the market price of our common stock.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We are a &#8220;smaller reporting company,&#8221; as defined in Item 10(f)(1) of Regulation S-K. As a smaller reporting company, we take advantage of specified scaled disclosure and other requirements that are otherwise applicable generally to public companies.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We intend to continue to take advantage of certain of the scaled disclosure requirements of smaller reporting companies and may continue to do so until we are no longer a smaller reporting company. We will cease to be a smaller reporting company if we have (i) equal or greater than $250 million in market value of our shares held by non-affiliates as of the last business day of our second fiscal quarter and (ii) if the market value of our shares held by non-affiliates does not exceed $700 million as of the last business day of our second fiscal quarter, equal or greater than $100 million of annual revenues in our most recent fiscal year. We choose to take advantage of some but not all of these scaled disclosure requirements; therefore, the information that we provide stockholders may be different than one might get from other public companies. If some investors find our shares of common stock less attractive as a result, there may be a less active trading market for our shares of common stock and the market price of such shares of common stock may be more volatile.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Our Amended and Restated By-Laws designate certain Delaware courts as the sole and exclusive forum for certain types of actions and proceedings that may be initiated by our stockholders, which could limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us or our directors, officers or stockholders.</div>
<div style="text-align: justify; margin-bottom: 10pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our Amended and Restated By-Laws (the &#8220;By-Laws&#8221;) provide that, unless we consent in writing to the selection of an alternative forum, to the fullest extent permitted by law, all Internal Corporate Claims must be brought solely and exclusively in the Court of Chancery of the State of Delaware (or, if such court declines to accept jurisdiction, the Superior Court of the State of Delaware, or, if such other court declines to accept jurisdiction, the United States District Court for the District of Delaware). The By-Laws define &#8220;Internal Corporate Claims&#8221; to mean claims, including claims in the right of the Company, brought by a current or former stockholder (including a current or former beneficial owner) (i) that are based upon a violation of a duty by a current or former director or officer or stockholder in such capacity or (ii) as to which the General Corporation Law of the State of Delaware confers jurisdiction upon the Court of Chancery of the State of Delaware.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">This choice of forum provision may increase costs to bring a claim, discourage claims or limit a stockholder&#8217;s ability to bring a claim in a judicial forum that it finds favorable for disputes with us or our directors, officers or other stockholders, which may discourage such lawsuits against us and our directors, officers and stockholders. Alternatively, if a court were to find this choice of forum provision inapplicable to, or unenforceable in respect of, one or more of the specified types of actions or proceedings, we may incur additional costs associated with resolving such matters in other jurisdictions, which could adversely affect our business, financial condition or results of operations. The choice of forum provision in the By-Laws will not preclude or contract the scope of exclusive federal or concurrent jurisdiction for actions brought under the federal securities laws including the Exchange Act or the Securities Act or the respective rules and regulations promulgated thereunder.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">17</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 1B. Unresolved Staff Comments.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 2. Properties.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our principal facilities as of December 31, 2022 are listed below.&#160; We believe that all facilities generally are in good condition, adequately maintained and suitable for their present and currently contemplated uses.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Location</div></td>
    <td style="width: 1.39%; vertical-align: top;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Operations Conducted</div></td>
    <td style="width: 1.67%; vertical-align: bottom;">&#160;</td>
    <td colspan="2" style="width: 13.75%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Size</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(Approx. Sq. Ft.)</div></td>
    <td style="width: 1.81%; vertical-align: bottom;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Owned</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">or Leased</div></td>
    <td style="width: 1.39%; vertical-align: top;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Lease Expiration</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Date</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Hamden, Connecticut</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Executive offices and sales office</div></td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,100</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leased</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">October 31, 2025</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Ithaca, New York</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Hardware design and development, assembly and service facility</div></td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">73,900</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leased</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">May 31, 2025</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Las Vegas, Nevada</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Software design and development and casino and gaming sales office</div></td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,600</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leased</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">November 30, 2025</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Doncaster, UK</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales office and service center</div></td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,000</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leased</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">August 26, 2026</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Macau, China</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales office</div></td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">180</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leased</div></td>
    <td style="width: 1.39%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">June 30, 2023</div></td>
  </tr>
  <tr>
    <td style="width: 18.68%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 36.95%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 1.67%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 2.5%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 11.25%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">110,780</div></td>
    <td style="width: 1.81%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.45%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 1.39%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 14.91%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 3. Legal Proceedings.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Company may, in the ordinary course of business, become a party to litigation involving collection matters, contract claims and other legal proceedings relating to the conduct of its business.&#160; As of December 31, 2022, we are unaware of any material legal proceedings pending or threatened against us, or any material legal proceedings contemplated by governmental authorities.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 4. Mine Safety Disclosures.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">18</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">PART II</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 5. Market for Registrant&#8217;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our common stock is traded on the Nasdaq Global Market under the symbol TACT.&#160; As of February 28, 2023, there were 211 holders of record of the common stock.</div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Issuer Purchases of Equity Securities</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During the fourth quarter of 2022, we did not repurchase any shares of our common stock.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Dividend Policy</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Company does not currently pay cash dividends and does not intend to do so in the foreseeable future.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Sales of Unregistered Securities</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">None.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 6. [Reserved]</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 7. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">This discussion should be read in conjunction with the Consolidated Financial Statements and notes thereto.</div>
<div><br /></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Overview</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During the year ended December 31, 2022, we continued to experience recovery from the negative impacts COVID-19 had on our business during 2021 and 2020.&#160; While we have experienced recovery in most of our markets, there are still uncertainties on how any future variants of COVID-19 and global supply chain disruptions may continue to impact our business, operations, supply chain, customers and vendors.&#160; During 2022, we continued to focus our efforts on sales execution, operating and engineering adjustments to react to global supply chain disruptions and expansion of our market share.&#160; We successfully navigated the supply chain disruptions, and thanks to a significant market share gain in our casino and gaming market, we returned to bottom line profitability in the third and fourth quarters of 2022.</div>
<div><br /></div>
<div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During the year ended December 31, 2022, our total net sales increased 48% to approximately $58.1 million compared to the year ended December 31, 2021.&#160; See the table below for a breakdown of our sales by market:</div>
<div><br /></div>
</div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology (&#8220;FST&#8221;)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">($261</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,834</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">120.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,727</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">96.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div>$&#160;</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TSG</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div>$&#160;</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(916</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(15.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$18,753</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">47.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Sales of our food service technology products remained relatively flat (decreasing 2%) in the year ended December 31, 2022 compared to the year ended December 31, 2021.&#160; In the food service technology market, we focus on providing hardware products, which include terminals/WorkStations, temperature probes, temperature sensors and gateways in addition to cloud-based software applications, labels and other recurring revenue items.&#160; Food service technology sales decreased in 2022 primarily due to a 30% decrease in FST hardware sales to one of our largest customers. Our total installed base increased by 2,362 terminals and WorkStations during 2022 resulting in a total installed base of 12,180 terminals at the end of 2022. This was partially offset by record sales and an 18% increase in BOHA! recurring revenue. </span>Recurring revenue increased 18% primarily due to higher label sales, as well as record sales of BOHA! software (largely from our labeling software application) recognized on a SaaS subscription basis due principally to the continued growth of the installed base of our BOHA! Terminals and WorkStations.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales of our POS automation products increased 121% in the year ended December 31, 2022 compared to the year ended December 31, 2021.&#160; In the POS automation market, we focus primarily on supplying printers that print receipts or linerless labels to customers in the restaurant and quick serve markets.&#160; During the year ended December 31, 2022, sales of our Ithaca 9000 printer benefitted from market share gain resulting from a competitor&#8217;s supply chain issues, as well as a special project for our largest customer.&#160; Sales in 2021 were unusually low due to the significant negative impact of the COVID-19 pandemic on the POS automation market.</div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales of our casino and gaming products increased 96% in 2022 compared to 2021.&#160; In our casino and gaming market, our focus lies primarily in supplying printers worldwide for use in slot machines at casinos and racetracks, as well as in other electronic gaming devices that print tickets or receipts. Additionally, we supplement these printer sales with revenue from EPICENTRAL which is our promotional printing system that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.&#160; The increase of casino and gaming printers was due to the recovery of the domestic and international casino and gaming market during 2022 as well as our expanding market share, as our largest competitor experienced supply chain issues and casinos continued to reopen compared to 2021 when the market was severely impacted by the COVID-19 pandemic and the related closures of casinos.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">19</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales of our Printrex branded printers included wide format, rack-mounted and vehicle-mounted thermal printers used by customers to log and plot oil field and down hole well drilling data in the oil and gas exploration industry.&#160; There were no Printrex sales in 2022 as we fulfilled last buy orders to legacy customers during the fourth quarter of 2021 and exited this market as of December 31, 2021 to focus towards our higher value, technology-enabled food service technology terminals and casino and gaming products.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TSG, which sells service, replacement parts and consumable products, including receipt paper, ribbons and other printing supplies for our non-FST products, continues to offer a recurring revenue stream from mostly our legacy products.&#160; TSG sales decreased 15% in 2022 compared to 2021, primarily due to declining service revenue from a legacy banking customer whose service contract ended during 2022, as well as lower replacement part and consumable product sales.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Operationally, our gross margin rose to 42.0% in 2022, an increase of 290 basis points from 39.1% in 2021, due </span>largely to higher volume of sales overall of our gaming and casino printers which have a higher margin, partially offset by higher material and shipping costs resulting from worldwide supply disruptions.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2022, our operating margin improved to (13.2%) compared to (23.8%) in 2021 as the 48% increase in sales helped increase gross margin by 290 basis points, offset by an increase of $7.3 million of operating expenses.&#160; Operating expenses increased by 30% as we gradually returned to more normalized pre-COVID-19 spending levels.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We reported a net loss of $5.9 million and a net loss per diluted share of $0.60 for 2022, compared to a net loss of $4.0 million and net loss per diluted share of $0.43 for 2021.&#160; In terms of cash flow, for 2022 we used $12.2 million of cash in operating activities.&#160; </span>We <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">ended the year with cash and cash equivalents of $7.9 million and we had $2.3 million of outstanding borrowings under the Siena Credit Facility on our Consolidated Balance Sheet at December 31, 2022.</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Critical Accounting Estimates</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The preparation of financial statements in conformity with generally accepted accounting principles (&#8220;GAAP&#8221;) requires management to make use of estimates, judgments and assumptions that affect both Balance Sheet items and Statement of Operations categories.&#160; Such estimates and judgments are based upon historical experience and certain assumptions that are believed to be reasonable in the particular circumstances; however, due to the inherent uncertainties in developing estimates, actual results could differ from the original estimates, requiring adjustments to these balances in future periods.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following accounting policies are those that we believe to be most critical in the preparation of our financial statements.&#160; These items utilize assumptions and estimates about the effect of future events that are inherently uncertain and are therefore based on our judgment.&#160; Refer to Note 2 &#8211; Summary of significant accounting policies in the accompanying Consolidated Financial Statements for a complete listing of our significant accounting policies.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Revenue Recognition</span> &#8211; Application of GAAP related to the measurement and recognition of revenue requires us to make judgments and estimates. Specifically, the determination of whether revenues related to our revenue contracts should be recognized over time or at a point in time.&#160; Other significant judgments include contracts that contain multiple performance obligations (most commonly when contracts include a hardware product, software, financing and extended warranties) which require a contract&#8217;s transaction price to be allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.&#160; Both of these determinations impact the timing and amount of our reported revenues and net income and loss.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Accounts Receivable</span> &#8211; We have standardized credit granting and review policies and procedures for all customer accounts, including: credit reviews of all new customer accounts; ongoing credit evaluations of current customers; credit limits and payment terms based on available credit information; and adjustments to credit limits based upon payment history and the customer&#8217;s current creditworthiness.&#160; We also provide an estimate of doubtful accounts based on historical experience and specific customer collection issues. Our allowance for doubtful accounts as of December 31, 2022 was $351 thousand, or 2.5% of outstanding accounts receivable, which we believe is appropriate considering the overall quality of our accounts receivable.&#160; Although credit losses have historically been within expectations and the reserves established, there is no assurance that our credit loss experience will continue to be consistent with historical experience.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Inventories </span>&#8211; Our inventories are stated at the lower of average cost or net realizable value. We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completion, disposal and transportation, historical usage and estimates of future demand. Assumptions are reviewed at least quarterly and adjustments are made, as necessary, to reflect changing market conditions. Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value. Should circumstances change and we determine that additional inventory is subject to obsolescence, additional write-downs of inventory could result in a charge to income.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#8220;first-in, first-out&#8221; (&#8220;FIFO&#8221;) costing methodology to the average costing methodology. We believe this methodology is preferable because it reflects a better estimate of inventory cost as we do not typically perform intensive manufacturing of our finished products, which are therefore better measured under average cost. In addition, our business is projected to include an increasing sales volume of software going forward, which better aligns with average costing. See Note 16 for further details.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">20</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Goodwill and Intangible Assets</span> &#8211; We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including, but not limited to, macroeconomic conditions, industry and market considerations, Company performance, and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022, upon the completion of our annual assessment for impairment, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of the Company was substantially higher than our carrying value.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have evaluated the recoverability of the assets on our Consolidated Balance Sheet as of December 31, 2022 in accordance with relevant authoritative accounting literature. We have considered the effects caused by the COVID-19 pandemic, the global supply chain disruptions, inflation and macroeconomic factors potentially impacting accounts receivable, inventory, investments, intangible assets, goodwill and other assets and liabilities.&#160; Where forward-looking estimates are required, we made a good-faith estimate based on information available as of the balance sheet date. We have continued to monitor for indicators of impairment through the date of this Annual Report on Form 10-K and reflected accordingly in the accompanying consolidated financial statements.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Income Taxes</span> &#8211; In preparing our Consolidated Financial Statements, we are required to estimate income taxes in each of the jurisdictions in which we operate.&#160; This involves estimating the actual current tax exposure together with assessing temporary differences between the tax basis of certain assets and liabilities and their reported amounts in the financial statements, as well as net operating losses, tax credits and other carryforwards.&#160; These differences result in deferred tax assets and liabilities, which are reflected in our Consolidated Balance Sheets.&#160; We then assess the likelihood that the deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Significant judgment is required in determining the provision for income taxes and, in particular, any valuation allowance or tax reserves with respect to our deferred tax assets and uncertain tax positions.&#160; On a quarterly basis, we evaluate the recoverability of our deferred tax assets based upon historical results and forecasted taxable income over future years, and match this forecast against the basis differences, deductions available in future years and the limitations allowed for net operating loss and tax credit carryforwards to ensure that there is adequate support for the realization of the deferred tax assets. Although we have considered future taxable income and ongoing prudent and feasible tax planning strategies in assessing the need for a valuation allowance, in the event we were to determine that we would not be able to realize all or part of our deferred tax assets in the future, an adjustment to the valuation allowance or tax reserves would be charged as a reduction to income in the period such determination was made.&#160; Likewise, should we determine that we would be able to realize future deferred tax assets in excess of its net recorded amount, an adjustment to the valuation allowance would increase net income in the period such determination was made.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We account for income taxes in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Among other things this provision prescribes a minimum recognition threshold that an income tax position must meet before it is recorded in the reporting entity&#8217;s financial statements. It also requires that the effects of such income tax positions be recognized only if, as of the balance sheet reporting date, it is &#8220;more likely than not&#8221; (i.e., more than a 50% likelihood) that the income tax position will be sustained based solely on its technical merits.&#160; When making this assessment, management must assume that the responsible taxing authority will examine the income tax position and have full knowledge of all relevant facts and other pertinent information.&#160; The accounting guidance also clarifies the method of accruing for interest and penalties when there is a difference between the amount claimed, or expected to be claimed, on a company&#8217;s income tax returns and the benefits recognized in the financial statements.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Share-Based Compensation</span> &#8211; We calculate share-based compensation expense in accordance with ASC 718, &#8220;Compensation &#8211; Stock Compensation&#8221; using the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of an option grant, stock price volatility, risk-free interest rate, and dividend yield.&#160; We account for forfeitures as they occur.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">21</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Results of Operations: Year Ended December 31, 2022 Compared to Year Ended December 31, 2021</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Net Sales.</span>&#160; Net sales, which include printer, terminal and software sales as well as sales of replacement parts, consumables and maintenance and repair services, by market for the years ended December 31, 2022 and 2021 are detailed in the below table.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">($261</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,834</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">120.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,727</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">96.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div>$&#160;</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TSG</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div>$&#160;</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(916</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(15.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$18,753</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">47.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International*</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$7,119</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International sales do not include sales of products to domestic distributors or other customers who in turn ship those products to international destinations.</div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales for 2022 increased $18.8 million, or 48%, from 2021.&#160; Printer, terminal and other hardware sales volume increased by 63% to approximately 134,000 units for 2022, driven by large unit volume increases in all casino and gaming and POS automation, partially offset by unit volume declines in FST and Printrex (the oil and gas market which we exited in 2021).&#160; The primary volume increases were an 80% increase in unit volume from the casino and gaming market, as the casino market continued to rebound from the impact of COVID-19 shutdowns and our market share increased due to our efforts to navigate supply chain restraints that prevented certain other suppliers from fully meeting customer demand and, to a lesser extent, a 60% unit volume increase in our POS automation market. We experienced a 32% decrease in hardware unit volume from the FST market, driven by a year-over-year reduction in sales from a large convenience store.&#160;&#160; The average selling price of our printers, terminals and other hardware increased 4% during 2022 compared to 2021, mainly due to price increases instituted during 2022 in response to product cost increases related to supply chain issues.&#160; Additionally, sales of our software, labels and other recurring revenue from our FST market increased $1.3 million, or 18%, during 2022 compared to 2021.&#160; International sales for 2022 increased $7.1 million, or 102%, compared to 2022, primarily due to a 141% increase in international casino and gaming sales due to unit volume increases noted above, partially offset by increased materials and shipping costs in the face of global supply chain disruptions.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Food service technology</span>. Our primary offering in the food service technology market is our line of BOHA! products, which can combine our latest generation terminal and workstation which includes one or two printers and our BOHA! Labeling, timers, and media software.&#160; In addition, customers may individually purchase cloud-based software applications that connect to a separate application on a separate mobile device into a solution to automate back-of-house operations in restaurants, convenience stores and food service operations. The additional software offering of BOHA! consists of a variety of individually purchased software-as-a-service (&#8220;SaaS&#8221;)-based applications for both Android and iOS operating systems, including applications for, temperature monitoring, temperature taking and checklists and task lists. These applications are sold separately, and customers purchase the applications they need for their back-of-house operations. Customers may also purchase associated hardware, such as handheld devices, tablets, temperature probes and temperature sensors and gateways. The BOHA! Terminal combines<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#xA0;</span>an operating system and hardware components in a device that includes a touchscreen and one or two thermal print mechanisms that print easy-to-read food rotation labels, grab-and-go labels, and nutritional labels for prepared foods, and &#8220;enjoy by&#8221; date labels. The BOHA! WorkStation uses an iPad or Android tablet instead of an integrated touchscreen. The BOHA! Terminal and the BOHA! WorkStation are equipped with the TransAct Enterprise Management System to ensure that only approved touchscreen functions are available on the touchscreen device and to allow over-the-air updates to the operating system. BOHA! helps food service establishments and restaurants (including fine dining, casual dining, fast casual and quick-service restaurants, convenience stores, hospitality establishments and contract food service providers) effectively manage food safety and grab-and-go initiatives, as well as automate and manage back-of-house operations. Recurring revenue from BOHA! is generated by software sales, including software subscriptions that are typically charged to customers annually on a per-application basis, as well as sales of labels, extended warranty and service contracts, and technical support services. Sales of our worldwide food service technology products for the years ended December 31, 2022 and 2021 were as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Domestic</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,602</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">93.8</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,738</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">93.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(136</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1.2</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">762</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6.2</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">887</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(125</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(14.1</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(261</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2.1</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></td>
  </tr>
</table>
<div><br /></div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Hardware</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,653</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29.5</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,226</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">41.4</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,573</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(30.1</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Software, labels and other recurring revenue</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,711</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">70.5</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,399</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58.6</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,312</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17.7</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(261</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.1</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
  </tr>
</table>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">22</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales in food service technology decreased 2.1% in 2022 compared to 2021.&#160; This was driven by a decrease in sales of hardware, partially offset by an increase in BOHA! software, labels and other recurring revenue.&#160; Hardware sales decreased 30% during 2022 compared to 2021 due largely to a&#160; reduction in sales to a large retail customer.&#160; Recurring revenue increased 18% primarily due to higher label sales, as well as record sales Of BOHA! software (largely from our labeling software application) recognized on a SaaS subscription basis due principally to the continued growth of the installed base of our BOHA! Terminals and WorkStations.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We expect FST revenue to be higher in 2023 than in 2022 as we continue to grow our installed base of paid terminals and the related recurring revenue (primarily the sale of labels and subscription software revenue from our labeling software application).</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">POS automation</span>. Revenue from the POS automation market includes sales of our Ithaca 9000 thermal printer used primarily by McDonald&#8217;s and other quick-service restaurants located either at the checkout counter or within self-service kiosks to print receipts for consumers or print liner-less labels.&#160; Sales of our worldwide POS automation products for the years ended December 31, 2022 and 2021 were as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Domestic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,657</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,817</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">99.8</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,840</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">121.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(75.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,834</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">120.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The increase in POS automation product revenue during 2022 compared to 2021 was driven by a 121% increase in sales of our Ithaca&#174; 9000 printer, primarily to McDonald&#8217;s, as we benefited from market share gains resulting from a competitor&#8217;s supply chain issues as well as a special project for McDonald&#8217;s that utilized our printer.&#160; Sales for 2021 were unusually low due to the significant negative impact from the COVID-19 pandemic on POS automation sales during 2021.&#160; Due to the completion of the special project in 2022, we expect POS automation sales to be lower in 2023 compared to 2022.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Casino and gaming</span>. Revenue from the casino and gaming market includes sales of thermal ticket printers used in slot machines, video lottery terminals, and other gaming machines that print tickets or receipts instead of issuing coins at casinos, racetracks and other gaming venues worldwide. Revenue from this market also includes sales of thermal roll-fed printers used in the international off-premise gaming market in gaming machines such as Amusement with Prizes, Skills with Prizes and Fixed Odds Betting Terminals and kiosks for sports betting at non-casino gaming and sports betting establishments.&#160; Revenue from this market also includes royalties related to our patented casino and gaming technology. In addition, casino and gaming market revenue includes sales of the EPICENTRAL print system, our software solution (including annual software maintenance), that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; Sales of our worldwide casino and gaming products for the years ended December 31, 2022 and 2021 were as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Domestic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,686</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,173</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">66.5</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,513</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">73.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,343</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">41.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,129</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">33.5</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,214</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">140.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,727</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">96.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The increase in domestic sales of our casino and gaming products during 2022 compared to 2021 was primarily due to a 74% increase in domestic sales of our thermal casino printers, as our business experienced a strong recovery from the COVID-19 pandemic during 2022 compared to 2021 and we increased our overall market share due largely to our largest competitor&#8217;s inability to supply product due to supply chain issues.&#160; The overall increase in casino and gaming domestic sales was also driven by a 410% increase in domestic EPICENTRAL sales during 2022 as we completed several EPICENTRAL installations/expansions during 2022. EPICENTRAL sales are project based, and as a result, may fluctuate significantly quarter-to-quarter and year-to-year.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International sales of our casino and gaming products increased during 2022 compared to 2021, primarily due to a 155% increase in sales of our thermal casino printers.&#160; Similar to the domestic market, we experienced significant recovery during 2022 from the COVID-19 pandemic in the international gaming markets and increased our market share due largely to our competitor&#8217;s inability to supply product due to supply chain issues.&#160; The substantial increase in international gaming sales was predominantly driven by the European and Australian markets while the Asian market still remained negatively impacted from the COVID-19 pandemic.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We expect both domestic and international sales of our casino printers to continue to be strong and higher in 2023 as compared to 2022 as we work to fulfil our large backlog of orders and continue to capitalize on our increasing market share in the industry.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">23</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Printrex:</span>&#160; Printrex branded printers were sold into markets that include wide format, desktop and rack-mounted and vehicle-mounted black/white thermal printers used by customers to log and plot oil field, seismic and down hole well drilling data in the oil and gas exploration industry.&#160; Sales of our worldwide Printrex printers for the years ended December 31, 2022 and 2021 were as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Domestic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">171</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">27.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(171</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">460</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">72.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(460</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(631</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We made a strategic decision to exit the Printrex market as of December 31, 2021 and have had no sales, and expect to have no future sales in this market beyond 2021.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">TSG:</span> Revenue generated by TSG includes sales of consumable products (POS receipt paper, inkjet cartridges, ribbons and other printing supplies for non-FST legacy products), replacement parts and accessories, maintenance and repair services, refurbished printers, and shipping and handling charges.&#160; Sales in our worldwide TSG market for the years ended December 31, 2022 and 2021 were as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except percentages)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$ Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">% Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Domestic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,089</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">80.4</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,501</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">91.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,412</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(25.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 2px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">998</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">502</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.4</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">496</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">98.8</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">100.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(916</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(15.3</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The decrease in domestic revenue from TSG during 2022 as compared to 2021 on significantly lower legacy lottery printer part sales was due primarily to lower sales of replacement parts.&#160; Replacement part sales decreased 34%. Service revenue and consumable sales also declined 8% and 19%, respectively.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Internationally, TSG revenue increased during 2022 compared to 2021, due primarily to a 136% increase in sales of replacement parts and accessories to international casino and gaming customers.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We expect TSG sales for 2023 to be higher than 2022.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Gross Profit.</span>&#160; Gross profit information for the years ended December 31, 2022 and 2021 is summarized below (in thousands, except percentages):</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24,412</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,382</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">42.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit is measured as revenue less cost of sales, which includes primarily the cost of all raw materials and component parts, direct labor, manufacturing overhead expenses, cost of finished products purchased directly from our contract manufacturers, expenses associated with installations and support of our EPICENTRAL print system and our line of BOHA! products and royalty payments to third-parties, including to the third party licensor of our food service technology software products.&#160; Gross profit increased $9.0 million, or 59%, in 2022 compared to 2021, primarily due to the 48% sales increase in 2022 compared to 2021.&#160; Gross margin increased to 42.0% in 2022 compared to 39.1% in 2021 due largely to a favorable change in product sales mix and the effect from two rounds of price increases we instituted during 2022 to mitigate higher product and shipping costs related to the worldwide supply chain disruptions.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Operating Expenses - Engineering, Design and Product Development.</span>&#160; Engineering, design and product development information for the years ended December 31, 2022 and 2021 is summarized below (in thousands, except percentages):</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,570</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,475</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14.6</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Engineering, design and product development expenses primarily include salary and payroll-related expenses for our hardware and software engineering staff, depreciation and design expenses (including prototype printer expenses, outside design, development and testing services, supplies and contract software development expenses including those to the third party licensor of our food service technology software products).<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; </span>Engineering, design and product development expenses increased $1.1 million, or 15%, in 2022 compared to 2021 resulting from an increase in expenses related to reconfiguring unavailable parts and qualifying new parts, as well as a gradual return to more normalized pre-COVID-19 spending levels and from the full effect (in 2022) of hiring additional software developers in late 2021 to continue development of our food service technology products.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">24</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Operating Expenses - Selling and Marketing</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span>&#160; Selling and marketing information for the years ended December 31, 2022 and 2021 is summarized below (in thousands, except percentages):</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,326</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,658</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">47.9</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19.5</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19.4</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Selling and marketing expenses primarily include salaries and payroll-related expenses for our sales, marketing and customer success staff, sales commissions, travel expenses, expenses associated with the lease of sales offices, advertising, trade show expenses, public relations, e-commerce and other promotional marketing expenses.<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; </span>Selling and marketing expenses increased $3.7 million, or 48%, during 2022 compared to 2021 primarily due to higher trade show expenses, expanded marketing expenses as we returned to more normalized pre-COVID-19 levels of sales and marketing expense during 2022 compared to lower costs during 2021 due to cost saving measures implemented during 2020 that carried into 2021, payroll expenses for the expanded sales and marketing staff and increased commissions on higher sales in the casino and gaming market.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Operating Expenses - General and Administrative.</span>&#160; General and administrative information for the years ended December 31, 2022 and 2021 is summarized below (in thousands, except percentages):</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales - 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,193</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,626</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">26.7</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.0</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24.4</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">General and administrative expenses primarily include salaries, incentive compensation, and other payroll-related expenses for our executive, accounting, human resources, business development and information technology staff, expenses for our corporate headquarters, professional and legal expenses, information technology expenses, and other expenses related to being a publicly traded company.<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; </span>General and administrative expenses increased $2.6 million, or 27%, during 2022 compared to 2021 due to higher recruiting fees and employee compensation, as well as higher consulting fees and depreciation related to the implementation of a new ERP system that we completed in early 2022.&#160; Legal fees also increased year-over-year related to a shareholder matter that was resolved on March 30, 2022 when we entered into a Cooperation Agreement with two shareholders.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Operating Loss.</span>&#160; Operating loss information for the years ended December 31, 2022 and 2021 is summarized below (in thousands, except percentages):</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Percent of</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales &#8211; 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total Sales &#8211; 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7,677</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9,377</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(18.1</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(13.2</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(23.8</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%)</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our operating loss decreased $1.7 million, or 18%, during 2022 compared to 2021 as a $9.0 million, or 59% increase in gross profit on 48% higher sales was largely offset by a $7.3 million or 30% increase in operating expenses during 2022 compared to 2021..</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Interest, net.</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; We recorded net interest expense of $208 thousand in 2022 compared to $96 thousand in 2021.&#160; </span>The increase in net interest expense was primarily due to lower interest income earned from the note receivable to a third party software developer that was collected in March 2021.&#160; Interest expense also increased during 2022 and we expect will continue to increase during 2023 due to required minimum borrowings pursuant to the terms of the July 2022 Siena Credit Facility Amendment No. 2 along with expected interest rate increases in the broader financial markets.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Other, net</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; We recorded other expense of $16 thousand in 2022 compared to other expense of $283 thousand in 2021 primarily due to higher foreign exchange losses recorded by our UK subsidiary during 2021.&#160; </span>Going forward, we may continue to experience more foreign exchange gains or losses depending on the level of sales to European customers through our UK subsidiary and the fluctuation in exchange rates of the Euro and Pound Sterling against the U.S. Dollar, which may be impacted by volatility in global economic conditions and political instability such as the Russia-Ukraine conflict.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Gain from Employee Retention Credit. </span>We recorded a $1.5 million gain during 2021 resulting from the recognition of the employee retention credit pursuant to the CARES Act upon meeting the conditions required to claim the credit.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Gain on Forgiveness of Long-Term Debt. </span>We recorded a $2.2 million gain in 2021 resulting from the forgiveness of the PPP Loan in July 2021.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Income Taxes</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160; </span>We recorded an income tax benefit during 2022 of $2.0 million at an effective tax rate of 24.9%, compared to an income tax benefit during 2021 of $2.0 million at an effective tax rate of 33.6%.&#160; The tax benefit recorded for 2021 was higher as it included the recognition of the gain on the forgiveness of the PPP Loan which was not taxable.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Net Loss.</span>&#160; We reported a net loss for the year ended December 31, 2022 of $5.9 million, or $0.60 per basic and diluted share, compared to a net loss of $4.0 million, or $0.43 per basic and diluted share, in 2021.</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">25</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Liquidity and Capital Resources</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We assess our liquidity in terms of our ability to generate cash to fund our operating, investing and financing activities.&#160; Significant factors affecting the management of liquidity are cash flows from operating activities, capital expenditures, access to bank lines of credit and our ability to attract long-term capital with satisfactory terms.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Internal cash generation together with currently available cash and cash equivalents, available borrowing facilities and an ability to access credit lines at market-competitive rates, if needed, are expected to be sufficient to fund operations, capital expenditures, and any increase in working capital that would be required to accommodate a higher level of business activity for the 2023 fiscal year and beyond.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Cash Flow</div>
<div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2022, our cash balance decreased $11.5 million (versus an increase of $9.1 million in 2021) due primarily to operating activities, including an increase in inventories of $4.4 million to support the growing demand of our products and an increase of $6.4 million in receivables, reflecting stronger sales in 2022.&#160; We had $7.9 million in cash and cash equivalents as of December 31, 2022, of which $219 thousand was held by our UK subsidiary.</div>
</div>
<div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</div>
<div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Operating activities</span>: The following significant factors primarily affected our cash used in operating activities of $12.2 million in 2022 as compared to&#160; cash used in operating activities of $2.5 million in 2021.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2022:</div>
<div><br /></div>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We reported a net loss of $5.9 million.</div></td>
  </tr>
</table>
</div>
<div>
<div style="text-align: justify; margin-left: 18pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#9679;</span><span style="display: inline-block; text-indent: 0px; font-size: 1px; width: 18pt" class="TRGRRTFtoHTMLTab">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We recorded depreciation and amortization of $1.3 million and share-based compensation expense of $1.2 million.</span></div>
<div style="text-align: justify; margin-left: 18pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#9679;</span><span style="display: inline-block; text-indent: 0px; font-size: 1px; width: 18pt" class="TRGRRTFtoHTMLTab">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We recorded an increase in our deferred tax assets of $2.2 million due to our net loss in 2022.</span></div>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable increased $6.4 million primarily due to increased sales volume during the fourth quarter of 2022.</div></td>
  </tr>
</table>
</div>
<div>
<div style="text-align: justify; margin-left: 18pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#9679;</span><span style="display: inline-block; text-indent: 0px; font-size: 1px; width: 18pt" class="TRGRRTFtoHTMLTab">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Inventories increased $4.4 million primarily due to strategic purchases of electronic and other parts to support our sales growth.</span></div>
<div style="text-align: justify; margin-left: 18pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#9679;</span><span style="display: inline-block; text-indent: 0px; font-size: 1px; width: 18pt" class="TRGRRTFtoHTMLTab">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Accounts payable provided $3.2 million in cash due to increased inventory purchases and the timing of cash disbursements.</span></div>
</div>
<div>
<div><br /></div>
</div>
<div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2021:</div>
<div><br /></div>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We reported a net loss of $4.0 million.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We recorded depreciation and amortization of $1.0 million and share-based compensation expense of $1.2 million.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We recorded a gain of $2.2 million from the forgiveness of the PPP loan.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable increased $4.2 million, or 125%, primarily due to increased sales volume during the fourth quarter of 2021.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We recorded a receivable of $1.5 million for the employee retention credit.</div></td>
  </tr>
</table>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories decreased $3.4 million primarily due to the utilization of inventory on hand to fulfill sales and significantly reduced inventory purchases resulting from the supply chain disruptions caused by the COVID-19 pandemic.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Prepaid income taxes decreased $2.2 million due to receiving an income tax refund in 2021 related to the net operating loss reported for 2020 that was carried back to prior years as permitted by the CARES Act.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Accounts payable increased $2.5 million, or 150%, d</span>ue to inventory purchases made towards the end of the fourth quarter of 2021 to support expected 2022 sales<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">.</span></div></td>
  </tr>
</table>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accrued liabilities and other liabilities increased $0.6 million, or 7%, due primarily to increased deferred revenue.</div></td>
  </tr>
</table>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Investing activities</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">:&#160; </span>Our capital expenditures were $1.3 million and $1.4 million in 2022 and 2021, respectively.&#160; Expenditures in both 2022 and 2021 were primarily related to the implementation of a new ERP system which was completed in early 2022, new product tooling and computer and networking equipment.&#160; Investing activities also provided $1.6 million in 2021 upon the collection of the remaining $1.6 million note receivable balance during the first quarter of 2021 from an unaffiliated third party software developer from whom we license our food service technology software.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Financing activities:</span>&#160; Financing activities provided $2.1 million of cash during 2022 due primarily to required minimum borrowing on our Siena Credit Facility.&#160; During 2021, financing activities provided $11.5 million of cash primarily from the completion of an underwritten public offering which raised net proceeds of $11.2 million, after deducting <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">u</span>nderwriting discounts, commissions and offering expenses and, to a lesser extent, proceeds of $0.4 million from stock option exercises.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Resource Sufficiency</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures.&#160; Given the unprecedented uncertainty related to the impact of these external factors on the food service and casino industries, the Company continues to monitor its cash generation, usage and preservation including the management of working capital to generate cash.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We believe that our cash and cash equivalents on hand, our expected cash flows generated from operating activities, and borrowings available under our Siena Credit Facility will provide sufficient resources to meet our working capital needs, finance our capital expenditures and meet our liquidity requirements through at least the next twelve months.&#160; Notwithstanding this belief, the duration and extent of these global economic pressures and the future of pandemic variants remain uncertain and the ultimate impact of these global pressures is unknown.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">26</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Credit Facility and Borrowings</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On March 13, 2020, we entered into the Loan and Security Agreement (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;) and terminated our credit facility with TD Bank N.A. The Siena Credit Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023.&#160; Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility were $245 thousand. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility are secured by a lien on substantially all the assets of the Company. Borrowings under the Siena Credit Facility are subject to a borrowing base based on (i) 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and (b) 50% of eligible raw material and 60% of finished goods inventory.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Siena Credit Facility imposes a financial covenant on the Company and restricts, among other things, our ability to incur additional indebtedness and the creation of other liens. The three-month period from April 1, 2020 to June 30, 2020 was the first period we were subject to the original financial covenant, which required the Company to maintain a minimum EBITDA and continued through the 12-month period from April 1, 2020 to March 31, 2021. On July 21, 2021, the Company entered into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the Siena Credit Facility. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month ended July 31, 2021.&#160; From July 31, 2021 through December 31, 2022, we have been in compliance with our excess availability covenant. As of December 31, 2022, we had $2.3 million in outstanding borrowings under the Siena Credit Facility and $3.9 million of net available borrowing capacity under the Siena Credit Facility.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Siena Credit Facility as amended by Siena Credit Facility Amendment No. 1.&#160; Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with Siena Credit Facility Amendment No. 2. Siena Credit Facility Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The changes to Siena Credit Facility provided for in Siena Credit Facility Amendment No. 2 included, among other things, the following:</div>
<div><br /></div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-bottom: 8pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; margin-bottom: 8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(i)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; margin-bottom: 8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The extension of the maturity date from March 13, 2023 to March 13, 2025; and</div></td>
  </tr>
</table>
</div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin-bottom: 8pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; margin-bottom: 8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(ii)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; margin-bottom: 8pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The termination of the existing blocked account control agreement and entry into a new &#8220;springing&#8221; deposit account control agreement, permitting the Company to direct the use of funds in its deposit account until such time as (a) the sum of excess availability under the Siena Credit Facility and unrestricted cash is less than $5 million for 3 consecutive business days or (b) an event of default occurs and is continuing.</div></td>
  </tr>
</table>
</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the Amended Fee Letter requires the Company, while it retains the ability to direct the use of funds in the deposit account, to maintain outstanding borrowings of at least $2,250,000 in principal amount. If the Company does not have the ability to direct the use of funds in the deposit account, then the Amended Fee Letter requires the Company to pay interest on at least $2,250,000 principal amount of loans, whether or not such amount of loans is actually outstanding.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On May 1, 2020 (the &#8220;Loan Date&#8221;), the Company was granted the PPP Loan from Berkshire Bank in the aggregate amount of $2.2 million, pursuant to the PPP which is administered by the SBA and was established under Division A, Title I of the CARES Act, enacted March 27, 2020. Under the terms of the PPP, the PPP Loan would be forgiven to the extent that funds from the PPP Loan were used for payroll costs and costs to continue group health care benefits, as well as for interest on mortgage obligations incurred before February 15, 2020, rent payments under lease agreements in effect before February15, 2020, utilities for which service began before February 15, 2020 and interest on debt obligations incurred before February 15, 2020, subject to conditions and limitations provided in the CARES Act. At least 60% (under the PPP terms, as amended) of the proceeds of the PPP Loan needed to have been used for eligible payroll costs for the PPP Loan to be forgiven.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 8, 2021, the Company received notifications from Berkshire Bank and the SBA that its PPP Loan (including all interest accrued thereon) of $2.2 million had been fully forgiven by the SBA and that the forgiveness payment date was July 1, 2021. The forgiveness of the PPP Loan was reported as &#8220;Gain on forgiveness of long-term debt&#8221; in the Consolidated Statement of Operations during the year ended December 31, 2021.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Stock Repurchase Program</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">During 2022 and 2021, we did not repurchase any shares of our common stock.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Shareholders&#8217; Equity</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shareholders&#8217; equity decreased $5.1 million, or 13%, to $33.9 million at December 31, 2022 from $39.0 million at December 31, 2021.&#160; The decrease was primarily due to the net loss of $5.9 million in 2022.&#160; This was partially offset by share-based compensation expense related to stock awards of $1.0 million (net of withholding taxes paid by relinquishment of shares) in 2022.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 7A. Quantitative and Qualitative Disclosures about Market Risk.</div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct is a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, and is not required to provide information under this item.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">27</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 8. Financial Statements and Supplementary Data.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The financial statements of the Company are annexed to this Form 10-K as pages F-4 through F-22.&#160; The &#8220;Report of Independent Registered Public Accounting Firm&#8221; is annexed to this Form 10-K as of page F-2.&#160; An index to such materials appears on page F-1.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 9. Changes in and Disagreements with Accountants on Accounting and Financial Disclosure.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 9A. Controls and Procedures.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Evaluation of Disclosure Controls and Procedures</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our management, with the participation of our Chief Executive Officer (&#8220;CEO&#8221;) and Chief Financial Officer (&#8220;CFO&#8221;), evaluated the effectiveness of our disclosure controls and procedures, as defined in Rule 13a-15 under the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;) as of December 31, 2022.&#160; Our management, including our CEO and CFO, has concluded that our consolidated financial statements, included in this Form 10-K, fairly present, in all material respects, our financial condition, results of operations and cash flows for the periods presented in conformity with generally accepted accounting principles, and that they can be relied upon.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Management&#8217;s Annual Report on Internal Control Over Financial Reporting</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as defined in Rule 13a-15(f) under the Exchange Act, to provide reasonable assurance regarding the reliability of our financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles.&#160; 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 the assets of the Company; (ii) provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the Company are being made only in accordance with authorizations of management and directors of the Company; and (iii) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use or disposition of the Company&#8217;s assets that could have a material effect on the financial statements.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our management assessed our internal control over financial reporting as of December 31, 2022. Our management based its assessment on criteria established in <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Internal Control&#8211;Integrated Framework</span> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;2013 COSO&#8221;).&#160; In the opinion of management, TransAct maintained effective internal control over financial reporting as of December 31, 2022.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Changes in Internal Control over Financial Reporting</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">No change in our internal control over financial reporting (as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act) occurred during the three months ended December 31, 2022 that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 9B. Other Information.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 9C. Disclosure Regarding Foreign Jurisdictions that Prevent Inspection.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">28</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">PART III</div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 10. Directors, Executive Officers and Corporate Governance.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Set forth in Item 1 of this Form 10-K under the heading &#8220;Information about our Executive Officers&#8221; is certain information regarding our executive officers, and information regarding our code of ethics is set forth below.&#160; The remaining information in response to this item is incorporated herein by reference to the disclosure that will be contained, as applicable, under the headings, &#8220;Delinquent Section 16(a) Reports,&#8221; &#8220;Corporate Governance,&#8221; &#8220;Proposal 1: Election of Directors,&#8221; &#8220;Audit Committee Report,&#8221; &#8220;Executive Compensation &#8211; Compensation Committee Report,&#8221; and &#8220;Procedures for Submitting Director Nominations and Recommendations&#8221;&#160; in our Proxy Statement for our 2023 Annual Meeting of Stockholders (the &#8220;Proxy Statement&#8221;), which will be filed within 120 days after the end of the year covered by this Form 10-K.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Code of Ethics</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We maintain a Standards of Business Conduct and Code of Ethics (&#8220;Standards of Business Conduct&#8221;) that includes our code of ethics that is applicable to all employees, including our Chief Executive Officer, Chief Financial Officer, Chief Accounting Officer and Controller.&#160; Our Standards of Business Conduct, which require continued observance of high ethical standards, such as honesty, integrity and compliance with the law in the conduct of our business, are available for public access on our Internet website at https://transacttech.gcs-web.com/corporate-governance.&#160; Any person may request a copy of our Standards of Business Conduct free of charge by calling (203) 859-6800.&#160; We will disclose on our website at https://transacttech.gcs-web.com/corporate-governance any amendment to or waiver of a provision of the Standards of Business Conduct as may be required and within the time period specified under the applicable Securities and Exchange Commission and Nasdaq rules.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 11. Executive Compensation.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The information in response to this item will be contained in the Proxy Statement under the heading &#8220;Executive Compensation,&#8221; and is incorporated herein by reference.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Set forth below is certain information regarding our equity compensation plans.&#160; The remaining information in response to this item will be contained in the Proxy Statement under the heading, &#8220;Security Ownership of Certain Beneficial Owners and Management,&#8221; and is incorporated herein by reference.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Equity Compensation Plan Information</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Information regarding our equity compensation plans as of December 31, 2022 is as follows:</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 25.48%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Plan category</div></td>
    <td style="width: 1.38%; vertical-align: bottom;">&#160;</td>
    <td colspan="2" style="width: 22.18%; vertical-align: bottom; border-bottom: #000000 2px solid; white-space: nowrap;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(a)</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of securities</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">to be issued upon</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">exercise of outstanding</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">options, warrants&#160; and rights</div></td>
    <td style="width: 1.79%; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="2" style="width: 21.63%; vertical-align: bottom; border-bottom: #000000 2px solid; white-space: nowrap;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(b)</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted-average</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">exercise price</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">of outstanding</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">options, warrants and rights</div></td>
    <td style="width: 2.07%; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td style="width: 25.48%; vertical-align: bottom; border-bottom: #000000 2px solid; white-space: nowrap;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(c)</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of securities</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">remaining available for future</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">issuance under equity compensation plans</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(excluding securities reflected in column (a))</div></td>
  </tr>
  <tr>
    <td style="width: 25.48%; vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity compensation plans approved by security holders:</div></td>
    <td style="width: 1.38%; vertical-align: bottom;">&#160;</td>
    <td colspan="2" style="width: 22.18%; vertical-align: bottom;">&#160;</td>
    <td style="width: 1.79%; vertical-align: bottom;">&#160;</td>
    <td colspan="2" style="width: 21.63%; vertical-align: bottom;">&#160;</td>
    <td style="width: 2.07%; vertical-align: bottom;">&#160;</td>
    <td style="width: 25.48%; vertical-align: bottom;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 25.48%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2005 Equity Incentive Plan</div></div></td>
    <td style="width: 1.38%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 2.07%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 20.11%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">156,000</div></div></td>
    <td style="width: 1.79%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 4.75%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td style="width: 16.88%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.09</div></div></td>
    <td style="width: 2.07%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 25.48%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
  </tr>
  <tr>
    <td style="width: 25.48%; vertical-align: bottom; background-color: #FFFFFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2014 Equity Incentive Plan</div></div></td>
    <td style="width: 1.38%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 2.07%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 20.11%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,414,241</div></div></td>
    <td style="width: 1.79%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 4.75%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 16.88%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.60</div></div></td>
    <td style="width: 2.07%; vertical-align: bottom; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 25.48%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #FFFFFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">347,652</div></div></td>
  </tr>
  <tr>
    <td style="width: 25.48%; vertical-align: bottom; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td style="width: 1.38%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 2.07%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 20.11%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,570,241</div></div></td>
    <td style="width: 1.79%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 4.75%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td style="width: 16.88%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.84</div></div></td>
    <td style="width: 2.07%; vertical-align: bottom; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 25.48%; vertical-align: bottom; border-bottom: #000000 2px solid; background-color: #CCEEFF;"><div><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">347,652</div></div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In May 2014, our stockholders approved the adoption of the 2014 Equity Incentive Plan.&#160; In May 2020, our stockholders approved an amendment to the 2014 Equity Incentive Plan to increase the number of shares of common stock which may be subject to awards granted under the plan from 1,400,000 to its current level of 2,200,000.&#160; The Company also maintains the 2005 Equity Incentive Plan; however no new awards will be available for future issuance under this plan.&#160; Both plans generally provide for awards in the form of: (i) incentive stock options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; The Company does not have any equity plans that have not been approved by its stockholders.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 13. Certain Relationships and Related Transactions, and Director Independence.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The information in response to this item will be contained in the Proxy Statement under the headings &#8220;Certain Relationships and Related Transactions&#8221; and &#8220;Corporate Governance-Board Leadership Structure and Independence&#8221; and is incorporated herein by reference.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 14. Principal Accounting Fees and Services.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The information in response to this item will be contained in the Proxy Statement under the headings, &#8220;Policy Regarding Pre-Approval of Services Provided by the Independent Registered Public Accounting Firm&#8221; and &#8220;Independent Registered Public Accounting Firm&#8217;s Services and Fees&#8221; and is incorporated herein by reference.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">29</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">PART IV</div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 15. Exhibits and Financial Statement Schedules.</div>
<div><br /></div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(a)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">The following documents are filed as part of this Form 10-K:</div></td>
  </tr>
</table>
</div>
<div><br /></div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">1.</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Financial Statements.</div></td>
  </tr>
</table>
</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Report of Independent Registered Public Accounting Firm</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Balance Sheets as of December 31, 2022 and 2021</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Operations for the years ended December 31, 2022 and 2021</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Comprehensive Loss for the years ended December 31, 2022 and 2021</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Changes in Shareholders&#8217; Equity for the years ended December 31, 2022 and 2021</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Cash Flows for the years ended December 31, 2022 and 2021</div></td>
  </tr>
  <tr>
    <td style="width: 100%; vertical-align: top;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Notes to Consolidated Financial Statements</div></td>
  </tr>
</table>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2.</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Schedules.</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">All schedules are omitted because they are either inapplicable or not required, or because the information required therein is included in the Consolidated Financial Statements and Notes thereto.</div>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">3.</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibits</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibit Index</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000114036122030288/exhibit3-2.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.1(a)</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Certificate of Incorporation of TransAct Technologies Incorporated (conformed copy) (incorporated by reference to Exhibit 3.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on August 18, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000914039-99-000055.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.1(b)</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Certificate of Designation, Series A Preferred Stock, filed with the Secretary of State of Delaware on December 2, 1997 (incorporated by reference to Exhibit C of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on February 18, 1999).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000091403900000221/0000914039-00-000221.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.1(c)</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Certificate of Designation, Series B Preferred Stock, filed with the Secretary of State of Delaware on April 6, 2000 (incorporated by reference to Exhibit 3.1(c) of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 8, 2000).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="ex3_2.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.2</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amended and Restated By-Laws of TransAct Technologies Incorporated.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000950135-96-003298.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.1</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Specimen Common Stock Certificate (incorporated by reference to Exhibit 4.1 of the Company&#8217;s Registration Statement on Form S-1/A (No. 333-06895) filed with the SEC on August 1, 1996).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000012/exhibit42.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.2</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Description of Securities (incorporated by reference</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#xA0;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">to Exhibit 4.2 of the Company&#8217;s Annual Report on Form 10-K (SEC File No.</span></div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">000-21121) filed with the SEC on March 16, 2020).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012305006988/y09630exv99w1.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.1</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2005 Equity Incentive Plan (incorporated by reference to Exhibit 99.1 of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on June 1, 2005).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000024/def14aproxy.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.2</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Technologies Incorporated 2014 Equity Incentive Plan, as Amended and Restated (incorporated by reference to Exhibit I to the Definitive Proxy Statement on Schedule 14A filed with the Commission on April 23, 2020, File No. 000-21121).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000100/exhibit102.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.3</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2014 Equity Incentive Plan Time-based Restricted Stock Unit Agreement (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 6, 2016).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000112/exhibit101.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.4</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2014 Equity Incentive Plan Performance-based Restricted Stock Unit Agreement (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-211121) filed with the SEC on August 8, 2016).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730314000027/exhibit10-02.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.5</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2014 Equity Incentive Plan Non-statutory Stock Option Agreement (incorporated by reference to Exhibit 10.2 of the Company&#8217;s current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on May 19, 2014).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000950135-96-003298.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.6</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employment Agreement, dated July 31, 1996, by and between TransAct and Bart C. Shuldman (incorporated by reference to Exhibit 10.20 of the Company&#8217;s Registration Statement on Form S-1/A (No. 333-06895) filed with the SEC on August 1, 1996).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012305003228/y06777exv10w8wx.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.7</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Severance Agreement by and between TransAct and Steven A. DeMartino, dated June 1, 2004 (incorporated by reference to Exhibit 10.8 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2005).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730309000003/exhibit1010x.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.8</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment to Employment Agreement, effective January 1, 2008, by and between TransAct and Bart C. Shuldman (incorporated by reference to Exhibit 10.10 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2009).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730309000003/exhibit1012x.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.9</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment to Severance Agreement by and between TransAct and Steven A. DeMartino, effective January 1, 2008 (incorporated by reference to Exhibit 10.12 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2009).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730322000014/exhibit1010.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.10</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Severance Agreement by and between TransAct and Andrew J. Hoffman (as amended), effective December 23, 2008 (incorporated by reference to Exhibit 10.10 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 24, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730322000014/exhibit1011.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.11</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">(x)</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Second Amendment to Severance Agreement by and between TransAct and Steven A. DeMartino, effective April 29, 2021 (incorporated by reference to Exhibit 10.11 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 24, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922015376/ex10_1.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.12(x)</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amended and Restated Employment Agreement, dated as of December 14, 2022, by and between TransAct Technologies Incorporated and Bart C. Shuldman (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on December 27, 2022).</div></td>
  </tr>
</table>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">30</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000950135-96-002813.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.13</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease Agreement by and between Bomax Properties and Ithaca, dated as of March 23, 1992 (incorporated by reference to Exhibit 10.14 of the Company&#8217;s Registration Statement on Form S-1 (No. 333-06895) filed with the SEC on June 26, 1996).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/0000914039-98-000134.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.14</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Second Amendment to Lease Agreement by and between Bomax Properties and Ithaca, dated December 2, 1996<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> (</span>incorporated by reference to Exhibit 10.27 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 31, 1998).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000091403902000121/y58940ex10-8.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.15</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Agreement regarding the Continuation and Renewal of Lease by and between Bomax Properties, LLC and TransAct, dated July 18, 2001<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#xA0;</span>(incorporated by reference to Exhibit 10.8 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 29, 2002).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730312000026/exhibit1016.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.16</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment No. 1 to Lease Agreement between Bomax Properties, LLC and TransAct (incorporated by reference to Exhibit 10.16 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 10, 2012).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730316000085/exhibit1013.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.17</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment No. 2 to Lease Agreement between Bomax Properties, LLC and TransAct, dated January 14, 2016 (incorporated by reference to Exhibit 10.13 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 11, 2016).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000006/exhibit101.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.18</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment No. 3 to Lease Agreement between Bomax Properties, LLC and TransAct, dated February 28, 2020 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on March 4, 2020).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012305003228/y06777exv10w13.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.19</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease Agreement by and between Las Vegas Airport Properties LLC and TransAct dated December 2, 2004 (incorporated by reference to Exhibit 10.13 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2005).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730310000006/exhibit1019.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.20</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">First Amendment to Lease Agreement by and between CIP Hughes Center LLC and TransAct dated August 24, 2009 (incorporated by reference to Exhibit 10.19 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2010).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730315000047/exhibit102.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.21</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Second Amendment to Lease Agreement by and between The Realty Associates Fund IX LP and TransAct dated June 30, 2015 (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on August 7, 2015).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000095012307003917/y31948exv10w14.txt" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.22</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease Agreement by and between 2319 Hamden Center I, L.L.C. and TransAct dated November 27, 2006 (incorporated by reference to Exhibit 10.14 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 15, 2007).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730317000014/exhibit1020.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.23</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">First Amendment to Lease by and between 2319 Hamden Center I, L.L.C. and TransAct dated January 3, 2017 (incorporated by reference to Exhibit 10.20 of the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 16, 2017).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000042/exhbit101.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.24</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Second Amendment to Lease by and between 2319 Hamden Center I, L.L.C. and TransAct Technologies dated April 30, 2021 (incorporated by reference to Exhibit 10.1 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 13, 2021).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730320000037/exhibit102.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.25</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loan and Security Agreement, dated as of March 13, 2020, among Siena Lending Group LLC, TransAct Technologies Incorporated and the other Loan Parties from time to time party thereto (incorporated by reference to Exhibit 10.2 of the Company&#8217;s Quarterly Report on Form 10-Q (SEC File No. 000-21121) filed with the SEC on May 22, 2020).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000061/exihibit991.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.26</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment No. 1 To Loan and Security Agreement, dated as of July 21, 2021, among Siena Lending Group and TransAct Technologies Incorporated (incorporated by reference to Exhibit 99.1 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 26, 2021)</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922009128/ex10_1.htm">10.27</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amendment No. 2 To Loan and Security Agreement, dated as of July 19, 2022, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 25, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922009128/ex10_2.htm">10.28</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amended and Restated Fee Letter, dated as of July 19, 2022, between Siena Lending Group LLC and TransAct Technologies Incorporated (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on July 25, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex10_24.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.29</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#8224;</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Master License Agreement dated February 22, 2019 and amendments thereto (incorporated by reference to Exhibit 10.24 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 12, 2021).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex10_25.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.30</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#8224;</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Master Development and License Agreement dated July 20, 2018 (incorporated by reference to Exhibit 10.25 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 12, 2021).</div></td>
  </tr>
</table>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">31</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000121465922004610/ex10_1.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.31</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cooperation Agreement, dated as of March 30, 2022, by and among TransAct Technologies Incorporated, 325 Capital Master Fund LP and Harbert Discovery Fund, L.P. (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K (SEC File No. 000-21121) filed with the SEC on March 31, 2022).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="https://www.sec.gov/Archives/edgar/data/1017303/000101730321000020/ex21.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21</a></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Subsidiaries of the Company (incorporated by reference to Exhibit 21 to the Company&#8217;s Annual Report on Form 10-K (SEC File No. 000-21121) filed with the SEC on March 12, 2021)</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="ex23_1.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">23.1</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consent of Marcum LLP</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="ex31_1.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">31.1</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Rule 13a-14(a) Certification of Chief Executive Officer in accordance with Section 302 of the Sarbanes-Oxley Act of 2002.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="ex31_2.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">31.2</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Rule 13a-14(a) Certification of Chief Financial Officer in accordance with Section 302 of the Sarbanes-Oxley Act of 2002.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><a href="ex32.htm" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32</a><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#8225;</span></div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Certification 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.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.INS</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Instance Document (the instance document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document).</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.SCH</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Taxonomy Extension Schema Document.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.CAL</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Taxonomy Extension Calculation Linkbase Document.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.DEF</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Taxonomy Extension Definition Linkbase Document.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.LAB</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Taxonomy Extension Label Linkbase Document.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">101.PRE</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inline XBRL Taxonomy Extension Presentation Linkbase Document.</div></td>
  </tr>
  <tr>
    <td style="width: 8.36%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td style="width: 91.64%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101).</div></td>
  </tr>
</table>
<div><br /></div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(x)</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">Management contract or compensatory plan or arrangement.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">These exhibits are filed herewith.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8224;</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">Certain portions of this exhibit (indicated by &#8220;[***]&#8221;) have been omitted pursuant to Item (601)(b)(10) of Regulation S-K.</div></td>
  </tr>
</table>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8225;</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">These exhibits are furnished herewith.</div></td>
  </tr>
</table>
<div><br /></div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(b)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibits.</div></td>
  </tr>
</table>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Exhibits required by Item 601 of Regulation S-K under the Exchange Act are included in the Exhibit Index above under a(3) of this Item 15.</div>
<div><br /></div>
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(c)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Financial Statement Schedules.</div></td>
  </tr>
</table>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See the Notes to the Consolidated Financial Statements included in this Form 10-K.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Item 16. Form 10-K Summary.</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Not applicable.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">32</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">SIGNATURES</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Pursuant to the requirements of Section 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.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 40%; vertical-align: top;">&#160;</td>
    <td colspan="2" style="width: 60%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TRANSACT TECHNOLOGIES INCORPORATED</div></td>
  </tr>
  <tr>
    <td style="width: 40%; vertical-align: top;">&#160;</td>
    <td style="width: 5%; vertical-align: top;">&#160;</td>
    <td style="width: 55%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 40%; vertical-align: top;">&#160;</td>
    <td style="width: 5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">By:</div></td>
    <td style="width: 55%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Bart C. Shuldman</div></td>
  </tr>
  <tr>
    <td style="width: 40%; vertical-align: top;">&#160;</td>
    <td style="width: 5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Name:</div></td>
    <td style="width: 55%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Bart C. Shuldman</div></td>
  </tr>
  <tr>
    <td style="width: 40%; vertical-align: top;">&#160;</td>
    <td style="width: 5%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Title:</div></td>
    <td style="width: 55%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Chief Executive Officer</div></td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date: March 27, 2023</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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.</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Signature</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Title</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Bart C. Shuldman</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chief Executive Officer and Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Bart C. Shuldman</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Principal Executive Officer)</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: bottom; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Steven A. DeMartino</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">President, Chief Financial Officer, Treasurer and Secretary</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Steven A. DeMartino</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Principal Financial Officer)</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ William J. DeFrances</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Vice President and Chief Accounting Officer</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">William J. DeFrances</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Principal Accounting Officer)</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Haydee Ortiz Olinger</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chair of the Board</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Haydee Ortiz Olinger</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ John M. Dillon</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">John M. Dillon</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Audrey P. Dunning</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Audrey P. Dunning</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Daniel M. Friedberg</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Daniel M. Friedberg</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Randall S. Friedman</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Randall S. Friedman</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;">&#160;</td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"><span style="text-decoration: underline;">/</span></span>s/ Emanuel P. N. Hilario</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Director</div></td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div></td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 8.88%; vertical-align: top;">&#160;</td>
    <td style="width: 25.06%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Emanuel P.N. Hilario</div></td>
    <td style="width: 3.55%; vertical-align: top;">&#160;</td>
    <td style="width: 40.12%; vertical-align: top;">&#160;</td>
    <td style="width: 1.77%; vertical-align: top;">&#160;</td>
    <td style="width: 13.18%; vertical-align: top;">&#160;</td>
    <td style="width: 7.44%; vertical-align: top;">&#160;</td>
  </tr>
</table>
<div><br /></div>
<div><br /></div>
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">33</div>
</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
</div>
<div class="BRPFPageHeader"></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"><!--PROfilePageNumberReset%Num%1%%%-->INDEX TO CONSOLIDATED FINANCIAL STATEMENTS</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 88.28%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Financial Statements</div></td>
    <td style="width: 2.64%; vertical-align: top;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top;">&#160;</td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Report of Independent Registered Public Accounting Firm (PCAOB ID <span style="-sec-ix-hidden:Fact_f6c812e84aa049a2a1a4c71972c2109f">688</span>)</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-2</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Balance Sheets as of December 31, 2022 and 2021</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-4</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Operations for the years ended December 31, 2022 and 2021</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-5</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Comprehensive Loss for the years ended December 31, 2022 and 2021</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-6</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Changes in Shareholders&#8217; Equity for the years ended December 31, 2022 and 2021</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-7</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Consolidated Statements of Cash Flows for the years ended December 31, 2022 and 2021</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #FFFFFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #FFFFFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-8</div></td>
  </tr>
  <tr>
    <td style="width: 88.28%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Notes to Consolidated Financial Statements</div></td>
    <td style="width: 2.64%; vertical-align: top; background-color: #CCEEFF;">&#160;</td>
    <td style="width: 9.08%; vertical-align: top; background-color: #CCEEFF;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">F-9</div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-1</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Report of Independent Registered Publi<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">c Accounting Firm</span></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">To the Shareholders and Board of Directors of</div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TransAct Technologies Incorporated</div>
<div><br /></div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Opinion on the Financial Statements</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We have audited the accompanying consolidated balance sheets of TransAct Technologies Incorporated&#160; (the &#8220;Company&#8221;) as of December 31, 2022 and 2021, and the related consolidated statements of operations, </span>comprehensive loss,<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> changes in shareholders&#8217; equity and cash flows for each of the two years in the period ended December 31, 2022, 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, 2022 and 2021, and the results of its operations and its cash flows for each of the two years in the period ended December 31, 2022, in conformity with accounting principles generally accepted in the United States of America.</span></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Explanatory Paragraph &#8211; Change in Accounting Principle</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As described in Note 16 to the consolidated financial statements, effective April 1, 2022, the Company changed its method of inventory valuation from standard cost (which approximated actual cost on a &#8220;first-in, first-out&#8221; basis) to the average cost method of inventory accounting. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Basis for Opinion</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">These consolidated financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s consolidated financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;) 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.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audits to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. As part of our audits, we are required to obtain an understanding of internal control over financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company&#8217;s internal control over financial reporting. Accordingly, we express no such opinion.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our audits included performing procedures to assess the risks of material misstatement of the consolidated 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 consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.</div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-2</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Critical Audit Matters</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The critical audit matters communicated below are matters arising from the current period audit of the financial statements that were communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the consolidated financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the 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.</div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Valuation of Inventories - Change in Accounting Principle</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As described in Note 16 to the consolidated financial statements, effective April 1, 2022, the Company changed its method of inventory valuation from standard costing (which approximated the &#8220;first-in, first-out&#8221; costing methodology) to the average costing methodology, and comparative financial statements of prior periods were adjusted to apply the new method retrospectively. Management determined that this change in accounting principle was preferable because it reflects a better estimate of inventory cost. At December 31, 2022, the Company&#8217;s inventory balance was approximately $12.0 million. As discussed in Note 2 to the consolidated financial statements, inventories are stated at the lower of average cost or net realizable value.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The principal considerations for our determination that the Company&#8217;s change in accounting principle related to inventory valuation was a critical audit matter included the following: (1) management identifies inventories as a critical accounting estimate, and this change in accounting principle was considered to be a significant transaction during the year; (2) there were significant judgments made by management with respect to the change, including the explanation of why the change in accounting principle was preferable and the estimation of the retrospective adjustment to apply the new method of inventory valuation; and (3) management&#8217;s calculation to estimate the adjustment was intricate, due to the complexities of the manual calculations involved and the magnitude of transactions flowing through the analysis. This complexity led to a high degree of auditor effort in performing our audit procedures, which were designed to evaluate the reasonableness of management&#8217;s calculation and application of the retrospective inventory valuation adjustment.</div>
<div><br /></div>
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Addressing the critical audit matter involved performing procedures and evaluating audit evidence in connection with forming our overall opinion on the consolidated financial statements. These procedures included, among others, (i) obtaining an understanding of why the Company changed its accounting principle to the average costing methodology; (ii) evaluating management&#8217;s methodology and process for estimating the retrospective average costing adjustment; (iii) testing management&#8217;s calculation of the retrospective adjustment, which included evaluating the completeness and accuracy of management&#8217;s input data used in the manual calculation, principally inputs such as historical purchases and sales transactions; (iv) and evaluating the reasonableness of significant judgments used by management, principally management&#8217;s determination that one year of historical costing data was sufficient to adjust the opening balance for the retrospective adjustment.</div>
<div><br /></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ <ix:nonNumeric name="dei:AuditorName" id="Fact_d671bb53687c448b82fc6cc261c2a808" contextRef="c20220101to20221231">Marcum LLP</ix:nonNumeric></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have served as the Company&#8217;s auditor since 2020.</div>
<div><br /></div>
<div><br /></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="dei:AuditorLocation" id="Fact_b4a0617deeeb489cbe86d392245d126e" contextRef="c20220101to20221231">Hartford, Connecticut</ix:nonNumeric></div>
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 27, 2023</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-3</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CONSOLIDATED BALANCE SHEETS</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(As adjusted, in thousands, except share data)</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Assets:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current assets:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash and cash equivalents</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_6cb2aa7a89b1444bbea80af4f0b0cc94" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,946</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashAndCashEquivalentsAtCarryingValue" id="Fact_65b07f203d864f50a77aae6140da8ef3" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,457</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable, net</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_162fd256363f42e0a7b101c890aeece9" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,927</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsReceivableNetCurrent" id="Fact_6e3cf5f701014993b2cbacb053406b6f" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,593</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employee retention credit receivable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NontradeReceivablesCurrent" id="Fact_92bd371ed4a04f48a03ba60a390a48fc" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NontradeReceivablesCurrent" id="Fact_6f51879449b44089aef9ea9d31477401" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_6046c20402bc4a75a29c1d7adbe18130" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,028</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_7082edafaa1842ba8ffac462d94dbf48" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,711</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Prepaid income taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PrepaidTaxes" id="Fact_8d4130cb137d456e9f3c5ec9d95782b0" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PrepaidTaxes" id="Fact_3384afdc22754c7a95fdedd5fbb59bd5" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">137</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other current assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_fe40ba50c62b4873a91ecad23710696c" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">724</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsCurrent" id="Fact_25798672c3e44a9a9ed19c0233def667" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">738</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total current assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_e00537d3834a4b8c9f94479b36f0a38b" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">36,125</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsCurrent" id="Fact_a113519bd2d14d199e8a34496e6b0888" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">37,136</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Fixed assets, net</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_e63b912f6a6046a4858bdd6889971c31" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,781</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_e613f056c2994a74a4847dab2aad0b2c" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,684</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Right-of-use asset</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_3d9750ec049c4f778ada75d5c34e42c7" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,488</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseRightOfUseAsset" id="Fact_66b03be0a4b344669c3becb352b40a7c" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,553</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Goodwill</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Goodwill" id="Fact_d36bb891f1974c73ba9d6deec645598b" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,621</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Goodwill" id="Fact_af7e76378d9d4e0097712165c8ba5c45" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,621</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_b3d02eaa0a3741729347f8966b88887b" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,327</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_50f551d33cfc43e28e8a2eb1e8d1abce" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Intangible assets, net</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" id="Fact_639e30276e1f4f658fcaf8df4290ca0e" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">242</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IntangibleAssetsNetExcludingGoodwill" id="Fact_3d4d22654a5c46328a18adcf5c48cd55" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">397</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_c959393fccdc41f1999789535e7a79ba" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">248</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherAssetsNoncurrent" id="Fact_46e316287c454156b8f80afd850cf537" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">400</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsNoncurrent" id="Fact_d3e2d8fa4b564f5581fac9b431a28233" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,707</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AssetsNoncurrent" id="Fact_b710ebfa17bd496eba69a25f784adc4e" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">13,798</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Assets" id="Fact_698497e70b534d7692473e82010c4072" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">51,832</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Assets" id="Fact_f03f8d3ef8ab4b1f830057a1f5a04b94" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">50,934</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Liabilities and Shareholders&#8217; Equity:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current liabilities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current portion of revolving loan payable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LinesOfCreditCurrent" id="Fact_d8702e6bdaac42edaf46bfc3fabc00a8" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,250</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LinesOfCreditCurrent" id="Fact_7042d6f2d02b474abaf7cc73acbfbc92" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts payable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" id="Fact_b2044052ac8346d7926cd1b41ff2f00a" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,395</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccountsPayableCurrent" id="Fact_9a298cf307d745bbab63924fb22b2d56" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,308</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accrued liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_0e8a1bd2f60b431790d966d785ddd3a7" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,077</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_335ed1db755446f287b9f7f6ba6cf91f" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,894</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease liability</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_2b3ffd0d8f964100a4ac7498f0c3cbd7" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">875</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityCurrent" id="Fact_5548700f5464404a9559fdf1a380d3c2" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">789</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_4fa3466082464ccd99dd084603009b1f" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,329</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_0003a07254034144a89cac44425362bf" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">805</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total current liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_37235067eba349cf864f84a0ba630bd5" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,926</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesCurrent" id="Fact_b51e0999246e4a9ca753c5fd625d6fca" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,796</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, net of current portion</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_40c7bc4bb807424a8dd43f89132cd62f" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_b7534ab1c6524c829ea1f1e2dc209a17" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">186</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease liability, net of current portion</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_1e53514faf6a4ebab7bfe3d8920279a4" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,683</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiabilityNoncurrent" id="Fact_67fa3e2712a3455bb36c4c47dfdf3a51" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,781</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_4a851d07197f461db51aefa2b3993859" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">218</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesNoncurrent" id="Fact_9685e8247c5f4abb93db0745da6df5d1" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">187</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" id="Fact_b01a76739a19455cba1c858939a71086" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,044</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesNoncurrent" id="Fact_9333871b63024978bacef672a73d1398" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,154</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Liabilities" id="Fact_68662d5bb87943be85bfd33c21dfb321" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,970</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:Liabilities" id="Fact_39673ee0694243ac9891d7f382e1bb48" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,950</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Commitments and contingencies (see Notes 9 and 14)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommitmentsAndContingencies" id="Fact_1ef3493c51c7434da09ecab64a6cee20" contextRef="c20221231" unitRef="U001" xsi:nil="true" format="ixt:fixed-empty"></ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="-sec-ix-hidden:Fact_cd58adf38f9044d9839a3285fb52113e"> </span></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shareholders&#8217; equity:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Preferred stock, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_e03c4000c1444162b3d5f40bd1df04db" contextRef="c20211231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_31138f2c191e447981831450a10feaf7" contextRef="c20221231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_386081d4c791452b81e15a1cc10ccfe4" contextRef="c20211231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_a84809d944984708b8f18979756e32c1" contextRef="c20221231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,800,000</ix:nonFraction></ix:nonFraction></span> authorized, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_57625c87cca043cc919661a54a2bd97c" contextRef="c20211231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_85519cc14dd94e9e8bc663ab9cb2149d" contextRef="c20221231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_1423b80b43dc4d20a11e90d5970fe45d" contextRef="c20211231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_202be78d04434c0b8d1580619dfd6479" contextRef="c20221231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></span> issued and outstanding</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_d278b65b2a4140ed86bb3c41ae5345cc" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_975c84526b6041228c5904771dce9952" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Preferred stock, Series A, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_e58de175e0de4aa3a8f8e9b086a7b04d" contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" id="Fact_477c8e6499f74698a05e96d8e2276b8d" contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> par value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_ba3e080b8a9a4e23a4a13ddb100b5d3d" contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" id="Fact_a7a067bf57764e5db4102215ed41daf9" contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">200,000</ix:nonFraction></ix:nonFraction></span> authorized, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_ae54c67a9a7549b4b6c6fb8becdf6ca8" contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" id="Fact_bb9ef0eb2a244851bb0cbef128747f74" contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_feedc2ccdb4d408e8fa579c799f9ecf1" contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" id="Fact_840b242ff0b0446ebdce7724139a6f90" contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">none</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction></span> issued and outstanding</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_27a25c167c444f67ba1fcd636b6626f7" contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PreferredStockValue" id="Fact_21a5915aa5074f368a3659701853dedd" contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Common stock, $<span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_aec3bedbee4640e88a2bbc1710c07589" contextRef="c20211231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" id="Fact_5841e8c01523467f8346902ba9f69b23" contextRef="c20221231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></ix:nonFraction></span> par value, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_562e2c5083ff43d7a847773ec901b00e" contextRef="c20211231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" id="Fact_bf7ab2975eb1449897f61d5d314fac18" contextRef="c20221231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">20,000,000</ix:nonFraction></ix:nonFraction></span> authorized at December 31, <span style="text-indent: 0pt;">2022</span> and <span style="text-indent: 0pt;">2021</span>; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_329fced3f6e34910beb182ad37f7e71f" contextRef="c20221231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">13,956,725</ix:nonFraction></span> and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_e0918dfd4eb44ac4a63128173f3748cb" contextRef="c20211231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">13,917,731</ix:nonFraction></span> shares issued; <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_e820ee83898144fab85157ded895ef57" contextRef="c20221231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,911,883</ix:nonFraction></span> and <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" id="Fact_0299730f1c9341a38d88d2f834ccb66e" contextRef="c20211231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,872,889</ix:nonFraction></span> shares outstanding, at December 31, <span style="text-indent: 0pt;">2022</span> and <span style="text-indent: 0pt;">2021</span>, respectively</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_0b857345770243489da18b1237d2930f" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockValue" id="Fact_2d17e8d4910c4d05b3bc09d2dcd91ebd" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additional paid-in capital</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdditionalPaidInCapitalCommonStock" id="Fact_4aa4bf8f26bb47a5b55babb809f22be1" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">56,282</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdditionalPaidInCapitalCommonStock" id="Fact_78c704ec1185404c938a8be4ca24faea" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">55,246</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_36152f25c2864ee5a2570c309f585a36" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,630</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_9cb8f19ba8454142928536bed109fb49" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,566</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated other comprehensive (loss) income, net of tax</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_27d0b76eb09246079217aa03cf5c6066" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">79</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" id="Fact_1add13304e2343139810b4438d38d66b" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Treasury stock, <span style="text-indent: 0pt;"><ix:nonFraction name="us-gaap:TreasuryStockShares" id="Fact_43b2d251cd8749e9aa313ee2802c8e5c" contextRef="c20211231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:TreasuryStockShares" id="Fact_a0a0cb2cacca42678c06af9a9670c5a4" contextRef="c20221231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,044,842</ix:nonFraction></ix:nonFraction></span> shares, at cost</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:TreasuryStockValue" id="Fact_f74db5c946dd4decb6899da23774252d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:TreasuryStockValue" id="Fact_9d4971bc6dec4b75a50b1d0b5be91e4f" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total shareholders&#8217; equity</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_93f88f915808430bb1bf2e8f7a00e1aa" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,862</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1950198718db4cec84f54dbd8b3ae2fe" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,984</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total liabilities and shareholders&#8217; equity</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_24495cfce4b14138af330bf96d07c724" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">51,832</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LiabilitiesAndStockholdersEquity" id="Fact_6e9de2191ce24a8fadd634df21719a5f" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">50,934</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-4</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF OPERATIONS</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(As adjusted, in thousands, except per share data)</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_35e4184917f94cd7b154ba19afe3ac7f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_dcabf56e3fb74c54b06584ece77551a4" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,386</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cost of sales</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_654e9970f6144f748b2a04a706fce352" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,727</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_98ff22e2963d40a18d50391675d3e7f6" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24,004</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_0461bef1b85c4c02b8ae3e5da9aca757" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24,412</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_8a7d1464edd64c89a8025d9ba9aa7cf9" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,382</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating expenses:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Engineering, design and product development</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_b001b0a889c946a8a08b7a95325b80a8" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,570</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_c7f07884ca8042da940064576d4bcd3d" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,475</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Selling and marketing</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" id="Fact_a647540563f842779633859c3479dd39" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,326</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:SellingAndMarketingExpense" id="Fact_79e714385a9444aa8675318f0874c4e0" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,658</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">General and administrative</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" id="Fact_d2c6adbe189f45a181ab959a47b4cce0" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,193</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GeneralAndAdministrativeExpense" id="Fact_099856022a6741dfa37186f88bec5584" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,626</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingExpenses" id="Fact_405178f352634dd685cca0b3e0f4079b" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,089</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingExpenses" id="Fact_17c2619190af4b9ab3626e880b9e3b05" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24,759</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_a47b7e9ecfe44ecb96e3ac04fbabb65e" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7,677</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_4e8a0fec36cd436786010aa2ab9e6779" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,377</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Interest and other income (expense):</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Interest expense</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:InterestExpense" id="Fact_2b1fa58f746c4ae686b8e5e5f07f69d0" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">208</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:InterestExpense" id="Fact_22664d13cd1a4e49b92c22963bbb3734" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">157</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Interest income</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_067f98c9b1d5457abb04e15a77941e70" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestIncomeDomesticDeposits" id="Fact_c0b7adde50004026b334643f5f05b071" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">61</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other, net</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_93f0b7647b21460f96bd3b7cf820056b" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">16</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherNonoperatingIncomeExpense" id="Fact_35952ac3bd414832bf9e1ed3927d9ada" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">283</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gain from employee retention credit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:GainFromEmployeeRetentionCredit" id="Fact_e6abc40133a94620b1ac1cb20db0a7fa" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:GainFromEmployeeRetentionCredit" id="Fact_6914d499fbbd491396d0aea7804aed6c" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gain on forgiveness of long-term debt</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" id="Fact_6d7a671cf6a7482b94db8c4134bbc6b3" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" id="Fact_63cf79d3cca041a386141275de15b05b" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,173</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_055a55a038a5448abd0c0cb3fc626395" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">224</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NonoperatingIncomeExpense" id="Fact_6c0e37110da94581b637fc4454565679" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,294</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loss before income taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_80eab53aefcf4ea885ac4b36127b5aa4" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7,901</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_e3f169fdf36c4b6abf0245e96e137b1a" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">6,083</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_6d69099fd92d4a16b1319235f2d99c54" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,965</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_10a38633a16347beac8647c55faae11f" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,042</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e457789168264fb982458c1c37ba1bd0" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_58287f59b7b749ac9a615b0193fa7019" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_e3e6c0c0209644018e5f06c41a0ff726" contextRef="c20220101to20221231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.60</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_3491b415e9d84f5697960a486de4a7f5" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_443a0deb93984c35b09888beb1bcbddf" contextRef="c20220101to20221231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.60</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_905a622f47b94ce3a46701e8a1e41ae2" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares used in per-share calculation:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_7718d94863bc40eb879e406e66e1099a" contextRef="c20220101to20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,905</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_c5499a0b26b2432ab04d997fc21fb49e" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_d8cdb8cf53b64d25972abf745d00f20d" contextRef="c20220101to20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,905</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_e6810cfefad94b49861cb0811d148b9c" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-5</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(As adjusted, in thousands)</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_f5ebad797ca9488d9d4aad72dc748d97" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_2207a2968e1a44478d7b1cac8ce33c94" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_d13b2e2eb188405784aa9908893eacae" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">222</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_be58eec31fea49e0972bd5556163070a" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">181</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Comprehensive loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_28028b711a6444e7ad0d924a761590fb" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">6,158</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_9a0a13813e4445de9f22b0464b7228c3" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,860</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-6</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS&#8217; EQUITY</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(As adjusted, in thousands, except share data)</div>
<div><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Common Stock</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additional</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Paid-in</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Treasury</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Comprehensive</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Shares</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amount</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Capital</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Earnings</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Loss) Income</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Balance, January 1, </span><span style="text-indent: 0pt;">2021</span></div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_ef2cedbbee264a36a248ca246613b7f6" contextRef="c20201231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">8,931,385</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c882cd5a16cf44859f15dd2fd985570d" contextRef="c20201231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">130</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_2c362f21801a4d5dafc89cb4c3e349df" contextRef="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">42,536</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_4749e7eac4d1433d8199d636f54c790b" contextRef="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,607</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c6bd4e4afc424a2d8420c06a60f47ae0" contextRef="c20201231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_ac36fcd748b149c7acbbc9368da43ff3" contextRef="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">38</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_ceb669d0afae4fee806f9bb70f76ff7a" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,125</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Issuance of common stock from exercise of stock options</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_5e2f3d9d53b24ec48f5b88b3867bd589" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">97,000</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_d8526272f9b243b0bb7a8f912f8486ff" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_42972f0c08ce464faa7c0549979447a5" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">436</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_36fa4b0d0c2943c4a9d59c172a5ea27f" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_7798b2fc4db14ad89d86645d27774816" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_5a9997a96ce7456e87d72192b3864121" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_538c87adf8b44f6894ff7460953dae4b" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">436</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Issuance of common&#160; stock on restricted stock units</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" id="Fact_30232a88de5244deb41e0072e04b8808" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">50,525</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_20452fc9c5c84051a3fdc193b2364ffe" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_62e0c78f19464d29b951099940a90796" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_cd4e2f7effd7473bb06997a9f730a832" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_5fe1d5593417455bbf9d5ec5db3f1436" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_7b1d2bc7dd3c40aa8d5863ba270ebead" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_4eb3b776b1ee4a92bfd536a4b4f929f9" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Issuance of common stock, net of issuance cost</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" id="Fact_dd3dfb5402f64377aebe0eb46451c7a4" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">842,375</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_ab58b5ddb829492dbf251c4f9aa993c6" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_0d6bece02a9943cf891862e555d500dc" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,201</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_a56b8abe0f394228a3fffe041c8f84bb" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_849662b370ae4d3db2a92070bfab5419" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_8643107028ce4c7b87cc7ce0253a9090" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueNewIssues" id="Fact_500ddb7991ea486697dc4de9466a4bc3" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,210</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Relinquishment of stock awards and deferred stock units to pay withholding taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" id="Fact_11304ffcac68456981d4bdef1e4a3c2c" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">48,396</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_b2a7aa74259040249ea619f91ea2faa1" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_9fd8adf31ec44f2a8b8e41c9127e472c" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_286ccfe8aec145669884ccd6be1d3fd4" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_1689b9c7597a403db83edac0cb341f89" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_dcde440390184888bbcabd083eb7465a" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_3ba06fdb429541d99f9df068135d1794" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Share-based compensation expense</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_e45d608f93894eb2a55f0d5975deee39" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_7d090ab9f44c41b7adff12a408806c55" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,206</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_57e6f2b7019c4a25a47093ea01658a84" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_717e9cc192c642a18f214cd994644da4" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_14223890f7984ce896a48c5d1281a971" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_da9c0783ead54d80a77c6dde48ff29a0" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,206</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_f5acc481762845989420bfed70060550" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_765d086023b84b37899570ce12167caa" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_ffbd3205ffdf4bf78a741a57ea4984a4" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_3ea27a2ce72b478ab9d67c963bd22776" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_6db5498e659e4ef49f1434eff0db447f" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">181</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_97ce5fc0a5684496bd56f5771ba920b4" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">181</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_53385f43ec19431f85b5ad8efd0aff41" contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_60ce58b9af0142c1b3e61b194370944d" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_6afa2e86fb1246f380ba914bc25a2088" contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_b68d9f5d4c624027ab9c816f072adc94" contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_323b1a7876dc41f5a8e9b22b7116182a" contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e759fe1d1421422ba52aeb37e09114ff" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Balance, December 31, </span><span style="text-indent: 0pt;">2021</span></div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_94158e4f19cd4c9d853e9dfc953ce7d7" contextRef="c20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,872,889</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_16634b60d45a429889a7650eb49d7c73" contextRef="c20211231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_47fd6d63eeee46aa840dbcdbcca0da96" contextRef="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">55,246</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_cfd37a7724a34065a642ba3a6f2f796c" contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,566</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_07175478f4c14b8cbda589f0cb9e8a53" contextRef="c20211231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_fc7bb35f2b074cb4a0e9d145c18c94ef" contextRef="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_daadc181d7ea4beaa943e6b1c424e701" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,984</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Issuance of common stock from exercise of stock options</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_dfc34ad3a98e42468999eaf1f51125fc" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">17,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_4a6dff39f57d4c8d9c3d5a93762264d7" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_4222c2183b1f47609236144b6463be95" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_98bab54933bd4b8ea13eb5ff122df1b2" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_a10495d46449416fbef6e90909b4c36d" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_d9712c2d5fff4fbbb94a4e917f7cae71" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" id="Fact_aff38c56d73e4402ad7bb722e788e647" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Issuance of common&#160; stock on restricted stock units</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" id="Fact_c655686e313c4ee994276908fc7ddd9f" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">47,931</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_2ae8080dca9b46aba09762da1239d875" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_738a69a9c8584a46be01ac66f4936af9" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_fa370f5a2b874baf9828153447afd81e" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_fd6ebf1bd614439ab29bc62a2093494d" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_193eb6a28e974805a74af53430081706" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" id="Fact_519091b39ed1465ead2001fb463e5986" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Relinquishment of stock awards and deferred stock units to pay withholding taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation" id="Fact_8c5df7a018a74998932911bd4004c4dd" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">26,437</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_083ead3f275c4d0ca0b9f5bd3d93f14a" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_5761852997984bdd8cf30ea0e1d8a606" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">119</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_6462c8ca02434764bcd88eb00ff8a8ba" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_f3f4014f2e6343b991f3cf620a7a144d" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_3fc064fbe6264acc9b0b9d80496d7db2" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited" id="Fact_eb6a7eec2cf84aefba67720e93dfe071" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">119</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Share-based compensation expense</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_f078b5a58ba64c27937509dc745ba715" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_e9115147e286466a950a4850514813e4" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_f877810ea8d04030b61a644e18b36e9c" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_2440578cae0f46d6b995d02eda2aba68" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_d44e5c8357314344bedd017d93260133" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" id="Fact_0654707e0cdb4597b9d2b9558777c490" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign currency translation adjustment, net of tax</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_ffcf779217f04473ba4b370332600a6a" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_49c5463e66344ca2ad8c7aca5f59ae23" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_f29ba7ac8770430eaeef7f017d498692" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_47bbcf8706714bf29630558fad88d352" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_2b280ac9c37d403b906057769afbc8f4" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">222</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" id="Fact_ae449a7f3e524605ac573624c901f5bd" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">222</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_1f6023f63a3248a691bacd097a0ebe6c" contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d3fc706206a64aafb6c4d240c615c7eb" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_339b0d5ede9c4085bc4fd1e5f8fc18da" contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_566507c5615d4ae09dfa3068386c2473" contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_20c30e1ff43f4772b3191bed42515684" contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_0cfe6d1a0f3543019cd4c882872ff9fa" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 16%; padding-bottom: 4px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, December 31, <span style="text-indent: 0pt;">2022</span></div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CommonStockSharesIssued" id="Fact_2e9a375cc75b455db056e13e2b0091d7" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">9,911,883</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_fed86ef9f87e4ce3abaf47766ecb4589" contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_a410f4a29067434e9a3881e37898ae12" contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">56,282</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_ebf0ae8a767f49299349ffe281bbddb2" contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,630</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_e4e57e4bb4c5491ba2c212dfd83d338d" contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">32,110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_eec7a50f27e84fa496c502f9aad07dd4" contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">79</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_296b45cf70914c10a655602d7b14ed0e" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">33,862</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
<div style="text-align: center;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-7</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CONSOLIDATED STATEMENTS OF CASH FLOWS</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(As adjusted, in thousands)</div>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash flows from operating activities:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_ceba85f2f57644d18317e1ae7c3573cf" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_a8382c9f954040838fc23afa2bd73656" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Adjustments to reconcile net loss to net cash used in operating activities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Share-based compensation expense</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_35ea5bb483ef46a68646835b4c967b7f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,155</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensation" id="Fact_152787f17b7149768b7167f2cf10edc1" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,206</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation and amortization</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_008592a550f8459fa4e511bc1f1dfe91" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,332</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DepreciationAndAmortization" id="Fact_78fecbd3258947ada0be41bd89965a14" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">957</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_1a2a2f028b704e899a535d651fa1372c" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,141</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_f89506eeec974ef99591fdb692158de8" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,121</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loss on the disposal of fixed assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GainLossOnSaleOfProperty" id="Fact_4fed4f15c099461c828e80058d5bc458" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GainLossOnSaleOfProperty" id="Fact_3d21a44f700f45fc9682aada9dcd1d62" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign currency transaction losses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" id="Fact_f1b98056cbc546a4be801242430bc40f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">6</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" id="Fact_95900211dedd495e8c89018150509525" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">272</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gain on forgiveness of long-term debt</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" id="Fact_dc082257c74647e38c451e1c911589c5" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:GainsLossesOnExtinguishmentOfDebt" id="Fact_9addaedd05e94435a71c83b6aa800c48" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,173</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Changes in operating assets and liabilities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInReceivables" id="Fact_e2813f6107744104b4491ae61f44d356" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,421</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInReceivables" id="Fact_05cf18b74c07426e84401c32ff704b82" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,217</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employee retention credit receivable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable" id="Fact_81817e191e2b4cdf839d968b5bb58cae" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable" id="Fact_5009644028b2477cbad9bd24cb170d0b" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_2ebf13329fcf45688768709919844bb0" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,378</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_9f5b6ddaba8347a7842699f87962af07" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,440</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Prepaid income taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidTaxes" id="Fact_2106137153854e97bb0df24187f89ea4" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">137</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInPrepaidTaxes" id="Fact_6ab2c2716d88467b998cb29887be5ae7" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,210</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other current and long-term assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" id="Fact_48fd2a69ea044c3094be8d6a7be32c6b" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">167</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInOtherOperatingAssets" id="Fact_83d06c6dfea24f8bae02a84d5ed4b345" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">322</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts payable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_007595949b08412080bbb19bb55e8a08" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,103</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccountsPayable" id="Fact_221422b2a22f49d08634e58dd86dd438" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,534</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accrued liabilities and other liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" id="Fact_054224914ac04f3a95b6ece011e81b3d" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">754</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" id="Fact_ced357a356274546b2415bc4e949e00e" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">592</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net cash used in operating activities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_8f52445b790745bdb9b46ad1155da7da" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">12,220</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInOperatingActivities" id="Fact_506711929242488998a1911934275196" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,510</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash flows from investing activities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Capital expenditures</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_80f0ef048d3f42699a98f50970b19d90" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,299</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" id="Fact_75883db3cbb5469dafdf363291722877" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,384</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Proceeds from the sale of fixed assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" id="Fact_73978dc5ddc94bcd835e7df9721c7b41" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" id="Fact_f6d19e9f5af047f8a0fa911505d7b040" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;&#160;&#160;&#160;Collection of note receivable</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:PaymentsForProceedsFromNotesReceivable" id="Fact_85d0f9a9066b484d962e445008f9cc9e" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:PaymentsForProceedsFromNotesReceivable" id="Fact_9efc727dfa7844e9910b46262fb0356a" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,598</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net cash (used in) provided by investing activities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_09539b8b35f24da7a009753ac440f5cc" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,299</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInInvestingActivities" id="Fact_46247a9a4fb14aaabf853c1b80f236d2" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">222</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash flows from financing activities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Proceeds from bank borrowings</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromLinesOfCredit" id="Fact_4581b0f6bbf04a09bb654009269ca18f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,250</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromLinesOfCredit" id="Fact_777cef581d4f405c90bac1cd98d839bb" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Proceeds from stock option exercises</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_21344f1d431441d092388e95047ec658" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_c1b770ec60054cea906943009dd02e70" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">436</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Proceeds from the issuance of common stock</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromIssuanceOfCommonStock" id="Fact_86d1658532d04c8f970979da7f9bff3e" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProceedsFromIssuanceOfCommonStock" id="Fact_c3d9fad0bf7d4d16920a80d45769761d" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,214</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Payment of common stock issuance costs</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PaymentsOfStockIssuanceCosts" id="Fact_76555fb8c277417a94337e00b53d8921" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsOfStockIssuanceCosts" id="Fact_af1ed375b84a4a73b7e3a0b4b4f51b70" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,014</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Withholding taxes paid on stock issuance</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" id="Fact_61adcb7413f8412988d1a2807eb68544" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">119</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" id="Fact_91469e2f09fa42fba5e489715d2dcfbe" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Payment of bank financing costs</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsOfLoanCosts" id="Fact_eba35471c6a84211bfe71a21fadff4f9" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">69</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:PaymentsOfLoanCosts" id="Fact_a94982492fb7461d9495f5656da6a979" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">31</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net cash provided by financing activities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_0ba7a43d77764ea48c1496ec91bf013a" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,062</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetCashProvidedByUsedInFinancingActivities" id="Fact_469ab438058c468f98f739187488e12a" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,472</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effect of exchange rate changes on cash and cash equivalents</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_57ec8182f44c435e85ef169adf390a4d" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">54</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_bb657296d96640429b3275e2347073d5" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">86</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(Decrease) increase in cash and cash equivalents</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_864711d962a646c6943783bf89907460" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">11,511</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" id="Fact_2e5a586bcf39436697540146fabe8107" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,098</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash and cash equivalents, beginning of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_bdcfa5506a35453d832a5c1def28007d" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,457</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_405e88193bc6466d8f43eac8816f9aa2" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,359</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cash and cash equivalents, end of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_4ceb84b4729a4b2abe46a7771bc46e6a" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,946</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" id="Fact_b370ceebfd274dfbb42baa0db7de1af2" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,457</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Supplemental cash flow information:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Interest paid</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestPaidNet" id="Fact_9c20382559664f4b91545255b2fe3df7" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">129</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InterestPaidNet" id="Fact_34d024f0cab544549eb957dc195476c4" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">76</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income taxes paid</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxesPaid" id="Fact_57de2c03096e4617bdd147d0b0d489a7" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">62</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxesPaid" id="Fact_5f3bca03710b4aeab1ac0deae9281780" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">57</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Non-cash capital expenditure items</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" id="Fact_58f019273e54437682b2eee214581d6e" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">54</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" id="Fact_05473208ee42431eabf1c174cb23c36f" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">82</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">See accompanying notes to Consolidated Financial Statements.</div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-8</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:NatureOfOperations" id="Text_6875b726ea15451c8fd630914494410d" contextRef="c20220101to20221231" escape="true" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b81">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">1. Description of business</div>
</ix:nonNumeric><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b81" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b82">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b82" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b83">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Technologies Incorporated (together with its subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;), which has its headquarters in Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in <ix:nonFraction name="us-gaap:NumberOfOperatingSegments" id="Fact_657092ad33464a9480ae98b813318733" contextRef="c20220101to20221231" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction> operating segment: software-driven technology and printing solutions for high growth markets including food service technology, casino and gaming and &#8220;point of sale&#8221; (&#8220;POS&#8221;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold under the BOHA!<sup>TM</sup>, AccuDate&#8482;, Epic, Ithaca&#174;, and EPICENTRAL product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our <ix:nonFraction name="tact:NumberOfSoftwareSolutions" id="Fact_304467109d7347d8a22d0ae3ebffef66" contextRef="c20221231" unitRef="U005" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction> software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and food service operators and (ii) the EPICENTRAL Print System (&#8220;EPICENTRAL&#8221;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b83" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b84">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b84" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b85">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Impact of the COVID-19 Pandemic and Global Supply Chain Disruptions</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b85" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b86">
<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures, which have increased our costs and, in some instances, slowed our ability to deliver products to our customers.&#160; During 2021, our inventory levels decreased significantly as a result of these supply chain disruptions, and we experienced significantly lower sales levels.&#160; However, during 2022 we were able to increase our inventory levels and minimize the impact to our customers by successfully modifying our products that were affected by supply chain disruptions, as well as sourcing component parts from alternate suppliers.&#160; Although we were able to increase inventory levels during 2022 and expect to continue to do so in 2023, there can be no assurance that new or continuing supply chain disruptions will not affect our products or that we will be able to make timely modifications to address any future supply chain issues that arise.&#160; Further, while we have offset most of our cost increases by increasing prices of our products, there can be no guarantee that we will be able to offset any future cost increases should they arise.&#160; After a slowdown in the first quarter of 2022 resulting from the Omicron and other variants of COVID-19, we continued to experience demand recovery during the remainder of 2022. Based on our strong backlog position and continued market expansion, we expect this recovery to continue into 2023, though the exact timing and pace of recovery may be impacted by global economic conditions.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b86" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b87">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b87" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b88">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Balance Sheet, Cash Flow and Liquidity. </span>We have taken the following actions to increase liquidity and strengthen our financial position in an effort to mitigate the negative impacts from the COVID-19 pandemic, supply chain disruptions and inflationary pressures:</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b88" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b89">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b89" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b810">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Public Offering &#8211; On August 16, 2021, the Company raised net proceeds of $<ix:nonFraction name="us-gaap:ProceedsFromIssuanceOfCommonStock" id="Fact_b7a8ab45bd1845e4959f8cfa47d19a65" contextRef="c20210816to20210816" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">11.2</ix:nonFraction> million (including the exercise of the underwriters overallotment option on August 20, 2021), after deducting underwriting discounts, commissions and offering expenses, through an underwritten public offering and sold an aggregate of <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" id="Fact_30a1fc9ddec346558a0897870557de7d" contextRef="c20210816to20210816" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">842,375</ix:nonFraction> shares of common stock.</div></td>
  </tr>
</table>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b810" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b811">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b811" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b812">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP Loan &#8211; On May 1, 2020, the Company was granted a $<ix:nonFraction name="us-gaap:DebtInstrumentFaceAmount" id="Fact_ff0f257168b845a992a28dd3b6245ced" contextRef="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.2</ix:nonFraction> million loan (the &#8220;PPP Loan&#8221;) under the Paycheck Protection Program (the &#8220;PPP&#8221;) administered by the Small Business Administration (&#8220;SBA&#8221;) established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security (&#8220;CARES&#8221;) Act, which enabled us to return employees we furloughed earlier in 2020 to full time employment and to restore employees to full pay following certain pay cuts.&#160; On July 8, 2021, we received notice that the PPP Loan had been forgiven as of July 1, 2021.&#160; See Note 8 for further details regarding the PPP Loan.</div></td>
  </tr>
</table>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b812" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b813">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b813" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b814">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employee Retention Credit &#8211; Under the provisions of the CARES Act, the Company is eligible for a refundable employee retention credit subject to certain criteria.&#160;&#160;In connection with the CARES Act, the Company recognized the employee retention credit during the fourth quarter of 2021 and recorded $<ix:nonFraction name="tact:GainFromEmployeeRetentionCredit" id="Fact_f36ff68a1575483eb30399eabd9f7e20" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.5</ix:nonFraction> million as &#8220;Gain from employee retention credit&#8221; in the Consolidated Statement of Operations for the year ended December 31, 2021 and the related receivable as &#8220;Employee retention credit receivable&#8221; in the Consolidated Balance Sheet as of December 31, 2021 and 2022.&#160; We received these funds in the first quarter of 2023.</div></td>
  </tr>
</table>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b814" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b815">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b815" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b816">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On March 13, 2020, we entered into a Credit Facility with Siena Lending Group LLC that provides a revolving credit line of up to $<ix:nonFraction name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" id="Fact_eba0349e625d42388acf7121b5ad4e6e" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">10.0</ix:nonFraction> million, subject to a borrowing base and on July 19, 2022, we entered into an amendment to extend the maturity of the facility to March 13, 2025. See Note 8 for further details regarding this facility.</div></td>
  </tr>
</table>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b816" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b817">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b817" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b818">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt;"></td>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Reduced Capital Expenditures &#8211; We limited capital expenditures during 2020 and 2021 and gradually increased these expenditures during 2022 as sales improved.</div></td>
  </tr>
</table>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b818" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b819">
<div><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-9</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b819" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b820">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">After reviewing whether conditions and/or events raise substantial doubt about our ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this &#8220;Form 10-K&#8221; were issued, including consideration of the actions taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b820" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b821">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b821" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b822">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Use of Assumptions and Estimates</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b822" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b823">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b823" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b824">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Management&#8217;s belief that the Company will be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation, rising interest rates, capital expenditures and other operating costs. Our current assumptions are that casinos and restaurants will remain open and consumer traffic will continue to increase during the balance of 2023. Though demand for our products at casinos has increased substantially in 2022, and we expect this trend to continue, we cannot predict the ultimate impact of the current economic environment, including inflation, rising interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn or slower than anticipated economic recovery. However, despite our significant backlog of orders as of December 31, 2022 and increasing market share during 2022, should such conditions arise, we believe we will be able to take additional financial and operational actions to cut costs and/or increase liquidity.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b824" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b825">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b825" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b826">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b826" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b827">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b827" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b828">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Smaller Reporting Company</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b828" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b829">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b829" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b830">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b830" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b831">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b831" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b832">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide audited financial statements for three years.</div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b832" continuedAt="Text_fde0a1f4fb04499b89bb50a4dcf9b6b833">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fde0a1f4fb04499b89bb50a4dcf9b6b833">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We may lose our status as a smaller reporting company on the last day of the fiscal year in which we have (i) public float of at least $250 million as of the last day of the second fiscal quarter and (ii) if we have a public float that does not exceed $700 million as of the last day of the second fiscal quarter and at least $100 million in annual revenues. </span></div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" id="Text_9527a241fd8745e49657dbef402ee434" contextRef="c20220101to20221231" escape="true" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc41">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2. Summary of significant accounting policies</div>
</ix:nonNumeric><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc41" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc42">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc42" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc43"><ix:nonNumeric name="us-gaap:ConsolidationPolicyTextBlock" id="Text_a05ed4af955d48f9a8e48d290aa3a0e8" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc43" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc44">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc44" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc45"><ix:nonNumeric name="us-gaap:UseOfEstimates" id="Text_b1b972a8872d4c509b46c4009efc9793" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> The preparation of Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc45" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc46">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc46" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc47"><ix:nonNumeric name="us-gaap:SegmentReportingPolicyPolicyTextBlock" id="Text_04764b470eaa42c684770ef0114aa186" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Segment reporting</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">: </span>We apply the provisions of the Financial Accounting Standards Board (&#8220;FASB&#8221;) Accounting Standards Codification (&#8220;ASC&#8221;) 280, &#8220;Segment Reporting.&#8221;&#160; We view our operations and manage our business as <ix:nonFraction name="us-gaap:NumberOfOperatingSegments" id="Fact_a646e39195854e3cb22aeb85d83e92c2" contextRef="c20220101to20221231" unitRef="U004" decimals="INF" scale="0" format="ixt-sec:numwordsen">one</ix:nonFraction> segment: the design, development and marketing of software-driven technology and printing solutions and providing printer and terminal related software, services, supplies and spare parts.&#160; Factors used to identify TransAct&#8217;s single operating segment include the organizational structure of the Company and the financial information available for evaluation by the chief operating decision-maker in making decisions about how to allocate resources and assess performance.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc47" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc48">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc48" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc49"><ix:nonNumeric name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="Text_0e53aba468e44a79aa7368b3cac37178" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We consider all highly liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc49" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc410">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc410" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc411"><ix:nonNumeric name="us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" id="Text_d375ffa594664df48699e7bb444d3aa8" contextRef="c20220101to20221231" escape="true" continuedAt="Text_e9596b91ed31482ca92ee641745088621">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Allowance for doubtful accounts</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We establish an allowance for doubtful accounts to ensure trade receivables are valued appropriately.&#160; We maintain an allowance for doubtful accounts based on a variety of factors, including the length of time receivables are past due, significant one-time events and historical experience.&#160; We record a specific allowance for individual accounts when we become aware of a customer&#8217;s inability to meet its financial obligations, such as in the case of bankruptcy filings or deterioration in the customer&#8217;s operating results or financial position.&#160; If circumstances related to customers change, we further adjust estimates of the recoverability of receivables.</div>
</ix:nonNumeric></ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-10</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc411" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc412"><ix:continuation id="Text_e9596b91ed31482ca92ee641745088621" continuedAt="Text_e9596b91ed31482ca92ee641745088622">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc412" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc413"><ix:continuation id="Text_e9596b91ed31482ca92ee641745088622" continuedAt="Text_e9596b91ed31482ca92ee641745088623"><ix:nonNumeric name="us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" id="Text_9d4323ec57024da98dadb1ad2d0eac8d" contextRef="c20220101to20221231" escape="true" continuedAt="Text_20758091abf0422d910721e0b2036b9c1">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table summarizes the activity recorded in the valuation account for accounts receivable:</div>
</ix:nonNumeric></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc413" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc414"><ix:continuation id="Text_e9596b91ed31482ca92ee641745088623" continuedAt="Text_e9596b91ed31482ca92ee641745088624"><ix:continuation id="Text_20758091abf0422d910721e0b2036b9c1" continuedAt="Text_20758091abf0422d910721e0b2036b9c2">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc414" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc415"><ix:continuation id="Text_e9596b91ed31482ca92ee641745088624"><ix:continuation id="Text_20758091abf0422d910721e0b2036b9c2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Years Ended </span>December 31<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">,</span></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_54c7e0114c9f4e3c8e7f7fc5d359b84e" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">219</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_88a20e03d7d04149be5c9c6b760b1c96" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">220</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to costs and expenses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" id="Fact_79850dfc035b452d92bd32d37f6a015f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">140</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ProvisionForDoubtfulAccounts" id="Fact_faf2a2c423dd49d2a6e41ee172a15c6d" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deductions</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" id="Fact_ca60a0292ed24aac9eb3e69c0d11dffd" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" id="Fact_742a4a19d0fd4e06b6df6c974f738e87" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_d58463c1625f4ecda4dde637568c42e6" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">351</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" id="Fact_30cb65d6a5ed442d96492eeda380c219" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">219</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc415" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc416">
<div style="text-align: left;"><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc416" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc417"><ix:nonNumeric name="us-gaap:InventoryPolicyTextBlock" id="Text_cbf9ab1a6272485593a81172e5594a9f" contextRef="c20220101to20221231" escape="true" continuedAt="Text_edd46b867ff245c1ad7bf615c1f567fe1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc417" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc418"><ix:continuation id="Text_edd46b867ff245c1ad7bf615c1f567fe1" continuedAt="Text_edd46b867ff245c1ad7bf615c1f567fe2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc418" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc419"><ix:continuation id="Text_edd46b867ff245c1ad7bf615c1f567fe2">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#8220;first-in, first-out&#8221; (&#8220;FIFO&#8221;) costing methodology to the average costing methodology. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of the change in accounting principle during the second quarter of 2022.</span></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc419" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc420">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc420" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc421"><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="Text_aa794ae16528441eb764ae2ec6921921" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_c55284f1f0b14297ba96b72f42df18f4" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric>; machinery and equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_67bce9e49b1b4d1a81deb051c338f6c6" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric>; furniture and office equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_bdeebf1f667341de9916364f3e13afda" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">five years</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_a3e2bf03876e48b08531ffe5083ce955" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">ten years</ix:nonNumeric>; and computer software and equipment is <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_c2156240a61b498494d63e3fb99a6dd9" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">three years</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="Fact_80115fe7917a4176a9d8ba88323953b8" contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">seven years</ix:nonNumeric>.&#160; Leasehold improvements are amortized over the shorter of the term of the lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is recognized.&#160; Depreciation expense was $<ix:nonFraction name="us-gaap:Depreciation" id="Fact_508ee110d013442e8b1aacaba6884e97" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.1</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:Depreciation" id="Fact_411d12ae6f564b61856a47ed68aa518f" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.7</ix:nonFraction> million in 2022 and 2021, respectively.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc421" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc422">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc422" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc423"><ix:nonNumeric name="us-gaap:LesseeLeasesPolicyTextBlock" id="Text_3b66bdb6653c45f5890204e3efcb6f7b" contextRef="c20220101to20221231" escape="true" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc423" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc424"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef1" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc424" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc425"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef2" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef3">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc425" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc426"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef3" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef4">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc426" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc427"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef4" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef5">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use asset&#8221; and &#8220;Lease liability&#8221; in our Consolidated Balance Sheets.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc427" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc428"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef5" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef6">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc428" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc429"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef6" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef7">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc429" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc430"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef7" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef8">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc430" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc431"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef8" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef9">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On April 26, 2022, we entered into an amendment to modify the expiration date of our lease on our Las Vegas, Nevada facility. The lease was set to expire on November 1, 2022 and the amendment extended the lease term to November 30, 2025. The lease amendment resulted in an increase to the right-of-use-asset and lease liability of $<ix:nonFraction name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" id="Fact_4407035f5ea2480d9b789aa15dce47e4" contextRef="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset" id="Fact_86d378144d594fc6ba603c2808a22a9e" contextRef="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.8</ix:nonFraction></ix:nonFraction> million. The lease amendment modified the base rent.&#160; On April 30, 2021, we entered into an amendment to modify the expiration date of our lease on our Hamden, CT facility.&#160; The lease, which was last amended on January 3, 2017, was scheduled to expire on April 30, 2027.&#160; The lease amendment modified the expiration date to October 31, 2025.&#160; The modification resulted in reducing the right-of-use-asset and lease liability by $<ix:nonFraction name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" id="Fact_9e5ca2725025413dbc30fb8c2ed64c91" contextRef="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember" unitRef="U001" decimals="-5" scale="6" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction name="tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset" id="Fact_2e15e2dee19941d98715d361c9e2a66a" contextRef="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember" unitRef="U001" decimals="-5" scale="6" sign="-" format="ixt:num-dot-decimal">0.3</ix:nonFraction></ix:nonFraction> million.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc431" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc432"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef9" continuedAt="Text_5c3fe81422a3423098d7292fd636d5ef10">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc432" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc433"><ix:continuation id="Text_5c3fe81422a3423098d7292fd636d5ef10">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease right of use asset excludes lease incentives. Our leases have remaining lease terms of <ix:nonNumeric name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Fact_4c6bc40d313a452b96b1ce94ce1288ff" contextRef="c20221231_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">one year</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:LesseeOperatingLeaseRemainingLeaseTerm" id="Fact_cc0ccf5457b44d5ba6035049240ff8ca" contextRef="c20221231_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">four years</ix:nonNumeric>, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc433" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc434">
<div><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-11</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc434" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc435"><ix:nonNumeric name="us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock" id="Text_980b65c72a8b4e72b76eb381dcf66c9b" contextRef="c20220101to20221231" escape="true" continuedAt="Text_b94550dab7a0446e89833c73ddcac0ef1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Goodwill and intangible assets</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc435" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc436"><ix:continuation id="Text_b94550dab7a0446e89833c73ddcac0ef1" continuedAt="Text_b94550dab7a0446e89833c73ddcac0ef2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc436" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc437"><ix:continuation id="Text_b94550dab7a0446e89833c73ddcac0ef2">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022, we have determined that <ix:nonFraction name="us-gaap:GoodwillAndIntangibleAssetImpairment" id="Fact_ca1af0f842de46e8ba921bccaeffb2c9" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">no</ix:nonFraction> goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2022 when our annual review for impairment was performed.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc437" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc438">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc438" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc439"><ix:nonNumeric name="us-gaap:RevenueFromContractWithCustomerPolicyTextBlock" id="Text_a1a709585b10474292c74696e24e91d9" contextRef="c20220101to20221231" escape="true" continuedAt="Text_6367d13a76604988a7a26cd894964cae1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc439" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc440"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae1" continuedAt="Text_6367d13a76604988a7a26cd894964cae2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc440" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc441"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae2" continuedAt="Text_6367d13a76604988a7a26cd894964cae3">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc441" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc442"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae3" continuedAt="Text_6367d13a76604988a7a26cd894964cae4">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc442" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc443"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae4" continuedAt="Text_6367d13a76604988a7a26cd894964cae5">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer and our performance obligation is completed.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc443" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc444"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae5" continuedAt="Text_6367d13a76604988a7a26cd894964cae6">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc444" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc445"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae6" continuedAt="Text_6367d13a76604988a7a26cd894964cae7">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our food service technology terminals and maintenance agreements (including free <ix:nonNumeric name="tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" id="Fact_7cf1bb7ea0d44530badecc849eec372b" contextRef="c20220101to20221231" format="ixt-sec:durwordsen">one-year</ix:nonNumeric> maintenance received by customers upon completion of EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc445" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc446"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae7" continuedAt="Text_6367d13a76604988a7a26cd894964cae8">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc446" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc447"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae8" continuedAt="Text_6367d13a76604988a7a26cd894964cae9">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment approach.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc447" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc448"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae9" continuedAt="Text_6367d13a76604988a7a26cd894964cae10">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc448" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc449"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae10" continuedAt="Text_6367d13a76604988a7a26cd894964cae11">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc449" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc450"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae11" continuedAt="Text_6367d13a76604988a7a26cd894964cae12">
<div><br /></div>
</ix:continuation></ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-12</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc450" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc451"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae12" continuedAt="Text_6367d13a76604988a7a26cd894964cae13"><ix:nonNumeric name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="Text_6ec54f25df26416e9ccd831af7f9af1f" contextRef="c20220101to20221231" escape="true" continuedAt="Text_ce571cc604834e349f38eb86aa6d5c251">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>
</ix:nonNumeric></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc451" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc452"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae13" continuedAt="Text_6367d13a76604988a7a26cd894964cae14"><ix:continuation id="Text_ce571cc604834e349f38eb86aa6d5c251" continuedAt="Text_ce571cc604834e349f38eb86aa6d5c252">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc452" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc453"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae14" continuedAt="Text_6367d13a76604988a7a26cd894964cae15"><ix:continuation id="Text_ce571cc604834e349f38eb86aa6d5c252" continuedAt="Text_ce571cc604834e349f38eb86aa6d5c253">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc453" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc454"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae15" continuedAt="Text_6367d13a76604988a7a26cd894964cae16"><ix:continuation id="Text_ce571cc604834e349f38eb86aa6d5c253" continuedAt="Text_ce571cc604834e349f38eb86aa6d5c254">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_07b868794b34419db70fe34b34993634" contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,602</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_afe6b1d0560f425183609a2b7c115e29" contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">762</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f7c750099e13481fa2f75b2f580a5f5d" contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,364</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_2b24c8d28f45491aaad4bc9d7ec19105" contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,657</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_6fb236f7b91a4216b26194368a8f5780" contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_042aa47cfb304b868c9fb32c03a7d201" contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,659</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1ff4c6690fe743af87e22223076d3efa" contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,686</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_8cda49ec629f4335a1c010716dcc17ad" contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,343</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_0b9d53f275c547699c6d186ef7a7f2c9" contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,029</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_7657b5232e6e4cef8998af6952a59bcf" contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,089</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_0aff425dd99645e69d4c2b940580f4b9" contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">998</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a8589516877040928d9fd26a9aaef7d8" contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,087</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_9b58b4c959ef46a1b5151013bb03f665" contextRef="c20220101to20221231_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">44,034</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d41c23a5b1bf4dcda720e7081423e466" contextRef="c20220101to20221231_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,105</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_63d9822502bf40d3a9ae39b49dcbce48" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,139</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc454" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc455"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae16" continuedAt="Text_6367d13a76604988a7a26cd894964cae17"><ix:continuation id="Text_ce571cc604834e349f38eb86aa6d5c254" continuedAt="Text_ce571cc604834e349f38eb86aa6d5c255">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc455" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc456"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae17" continuedAt="Text_6367d13a76604988a7a26cd894964cae18"><ix:continuation id="Text_ce571cc604834e349f38eb86aa6d5c255">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Year Ended </span>December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: top; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_b1f34f8746174ebfbe49f9c7ff11ef8b" contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,738</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_e58db868e69b4b2396d604e351f223de" contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">887</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_12ce65e3858a42eebb4345e44edca3c0" contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,625</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_4c137f8d077f430f80fe31aee7cc78ef" contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,817</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_05be94044df8416398c177b2ef2f88ba" contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_97c1f0df5dd54ea5bf124768659ec1a2" contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,825</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_e5fe4f92832a4a22b4e51a56de65b96e" contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,173</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_66856602af6b4c1994738a5177050ce5" contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,129</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d8bb5d816d8a4f099b74ffcdef02411b" contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,302</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_a704531458af4ddcb7a378b967669d3b" contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">171</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_b28394c21d50492ba73dcc59432e00dc" contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">460</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_544c23d73f53459692872032de1361fa" contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">631</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_103db93f911241c7adf497e759b174ab" contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,501</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_59e82a22d865452eb6208094c3e24dd8" contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">502</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_2dd5badce2d742bcb71b779b003a1aad" contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,003</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; padding-bottom: 4px;"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_9560e7959bbc4f098505c12cef6f37e5" contextRef="c20210101to20211231_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,400</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_f776727144004b789e9d0eb8d314c92e" contextRef="c20210101to20211231_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,986</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_1bfc787299a6466381df32a7ce2d32df" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,386</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc456" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc457"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae18" continuedAt="Text_6367d13a76604988a7a26cd894964cae19">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc457" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc458"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae19" continuedAt="Text_6367d13a76604988a7a26cd894964cae20">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Contract balances</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc458" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc459"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae20" continuedAt="Text_6367d13a76604988a7a26cd894964cae21">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc459" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc460"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae21" continuedAt="Text_6367d13a76604988a7a26cd894964cae22">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc460" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc461"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae22" continuedAt="Text_6367d13a76604988a7a26cd894964cae23">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2022, we recognized revenue of $<ix:nonFraction name="tact:ContractWithCustomerRevenueRecognized" id="Fact_c4014e8fe8e341cf905cc0bb181fbac1" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.1</ix:nonFraction> million related to our contract liabilities as of December 31, 2021.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc461" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc462"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae23" continuedAt="Text_6367d13a76604988a7a26cd894964cae24">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc462" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc463"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae24" continuedAt="Text_6367d13a76604988a7a26cd894964cae25"><ix:nonNumeric name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="Text_0c495f37a8194cab9d4cd8868ba7bdc6" contextRef="c20220101to20221231" escape="true" continuedAt="Text_c7a8a705388c48fc880aabeda43f25141">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>
</ix:nonNumeric></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc463" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc464"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae25" continuedAt="Text_6367d13a76604988a7a26cd894964cae26"><ix:continuation id="Text_c7a8a705388c48fc880aabeda43f25141" continuedAt="Text_c7a8a705388c48fc880aabeda43f25142">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc464" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc465"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae26" continuedAt="Text_6367d13a76604988a7a26cd894964cae27"><ix:continuation id="Text_c7a8a705388c48fc880aabeda43f25142">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, current</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetCurrent" id="Fact_abffa07e37264a4ca4bb0605571e4612" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">392</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetCurrent" id="Fact_375d7a93115442b4b6ccf1e3e0f44f82" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">314</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, non-current</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetNoncurrent" id="Fact_324586d1cb9c4058b9fadad4473c3a42" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">163</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ContractWithCustomerAssetNetNoncurrent" id="Fact_12504cb94d644389acb6978e8dfadbfd" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">308</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Customer pre-payments</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="Fact_b3a482dac3594708b44af11fbb398e4b" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">101</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="Fact_ad21cbbe71874dfe8163c48e66459318" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">99</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, current</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_5558177efb9f48feb224e507ee2463e2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,329</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityCurrent" id="Fact_b635375e6a014fd788dcd2c2c318eb2b" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">805</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, non-current</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_9b6157f0af084cfa95fa143453ca88e6" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">143</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ContractWithCustomerLiabilityNoncurrent" id="Fact_efec040603154d37b3b62ed99590dc46" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">186</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerAssetLiabilityNet" id="Fact_78e6eb911c574b45b031e1460141cd63" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,018</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:ContractWithCustomerAssetLiabilityNet" id="Fact_c5120791355c495b91e5cced18cc57e5" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">468</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc465" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc466"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae27" continuedAt="Text_6367d13a76604988a7a26cd894964cae28">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc466" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc467"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae28" continuedAt="Text_6367d13a76604988a7a26cd894964cae29">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc467" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc468"><ix:continuation id="Text_6367d13a76604988a7a26cd894964cae29">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our customer.&#160; As of December 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_d486a8fef49b476190fd8746afbf5e37" contextRef="c20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">29.0</ix:nonFraction> million. The Company expects to recognize revenue on $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_1720bc18dfa447edbe450a412c6c7695" contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">28.7</ix:nonFraction> million of its remaining performance obligations within the next <ix:nonNumeric name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="Fact_e55cdacc9187468a9eb398fb8e3d240f" contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member" format="ixt-sec:durmonth">12</ix:nonNumeric> months following December 31, 2022, $<ix:nonFraction name="us-gaap:RevenueRemainingPerformanceObligation" id="Fact_d45056dd3c274760a3606afb1d11d118" contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million within the next <span style="-sec-ix-hidden:Fact_0fb767fdbb19460d8f1b18e429c9fbeb">24</span> months following December 31, 2022 and the balance of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_2611232e0afb4269a39e68f37603f983">36</span> months following December 31, 2022.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc468" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc469">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-13</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc469" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc470"><ix:nonNumeric name="us-gaap:ConcentrationRiskCreditRisk" id="Text_2b299792be934052a24c455928d01035" contextRef="c20220101to20221231" escape="true" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc470" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc471"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c1" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc471" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc472"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c2" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c3"><ix:nonNumeric name="us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" id="Text_89671cac314b4e19b53d7b979330c1ee" contextRef="c20220101to20221231" escape="true" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c561">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:</div>
</ix:nonNumeric></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc472" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc473"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c3" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c4"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c561" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c562">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc473" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc474"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c4" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c5"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c562" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c563">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chain Link Services</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_3a4a6b3336f749038c2626f40f3db4ee" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember" unitRef="U006" decimals="0" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_edc07af97a4544a3b29a4f3488dce9b8" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">10</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_24f0badf309548a6bdfcb19a02e84266" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">12</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_d01f4ebc963148858bce5b4761ccf779" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">NCR Corporation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_e56d78d1107d4c6f8cc78f298cbb16c0" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_23739239cd5b4201b60d790b976792a1" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">11</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Bright Group</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_39c29c7f54984c819519687c3e6bb231" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">11</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_9c51698f35f74eff989d35e5ff5942e3" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember" unitRef="U006" decimals="0" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc474" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc475"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c5" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c6"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c563" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c564">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc475" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc476"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c6" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c7"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c564" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c565">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to customers representing 10% or more of total net sales were as follows:</div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc476" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc477"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c7" continuedAt="Text_ef956af08bff41afa84a459e2f3aa13c8"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c565" continuedAt="Text_bd2905f2e63c4a8d96c6ffd7eda02c566">
<div><br /></div>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc477" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc478"><ix:continuation id="Text_ef956af08bff41afa84a459e2f3aa13c8"><ix:continuation id="Text_bd2905f2e63c4a8d96c6ffd7eda02c566">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">IGT</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_d276ac642d2f47bab1e653fa8e770084" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">10</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_923d63e0f8bd49618f2cf3427cd5cfe0" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc478" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc479">
<div style="text-align: left;"><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc479" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc480"><ix:nonNumeric name="us-gaap:ResearchAndDevelopmentExpensePolicy" id="Text_e4c89041ce964f63a3ab9bd4f1a00125" contextRef="c20220101to20221231" escape="true" continuedAt="Text_bf2e0512cbb846a790a787be3aad22c91">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $<ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_922f04fdaac34f129ec0c9a40d1d1307" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">8.6</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:ResearchAndDevelopmentExpense" id="Fact_006c64b6f2e140768e0bc2b391c2c8ba" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">7.5</ix:nonFraction> million of research and development expenses in 2022 and 2021, respectively.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc480" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc481"><ix:continuation id="Text_bf2e0512cbb846a790a787be3aad22c91" continuedAt="Text_bf2e0512cbb846a790a787be3aad22c92">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc481" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc482"><ix:continuation id="Text_bf2e0512cbb846a790a787be3aad22c92">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been included in cost of sales over the estimated life of the product.&#160; During 2019, we contracted several third-parties to develop software for our food service technology products, the cost for which we capitalized.&#160; Unamortized development costs for such software was $<ix:nonFraction name="us-gaap:CapitalizedComputerSoftwareNet" id="Fact_8e06f1a054f94ac6a1043336b0499ae1" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">242</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:CapitalizedComputerSoftwareNet" id="Fact_7fca6a7187aa406f9a2dbb924b0b0959" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">396</ix:nonFraction> thousand as of December 31, 2022 and 2021, respectively. The total amount charged to cost of sales for capitalized software development costs was $<ix:nonFraction name="us-gaap:CapitalizedComputerSoftwareAmortization1" id="Fact_03a31a31607a4b72b390dd846055a0f1" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:CapitalizedComputerSoftwareAmortization1" id="Fact_bb711623a9f742bf8a84ed0ef7102cbf" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">154</ix:nonFraction></ix:nonFraction> thousand in both 2022 and 2021.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc482" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc483">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc483" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc484"><ix:nonNumeric name="us-gaap:AdvertisingCostsPolicyTextBlock" id="Text_640142caf0ca49c68703632c34f3c261" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in selling and marketing expense on the accompanying Consolidated Statements of Operations for 2022 and 2021 totaled $<ix:nonFraction name="us-gaap:AdvertisingExpense" id="Fact_8fad1200199648688c449cc023bbc32e" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.1</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:AdvertisingExpense" id="Fact_92361189e6de43ea9cc02e3583077d6e" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.8</ix:nonFraction> million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc484" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc485">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc485" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc486"><ix:nonNumeric name="us-gaap:IncomeTaxPolicyTextBlock" id="Text_fec5bc44f8b047c49ba621837b28bd1b" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.&#160; We assess the likelihood that net deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. </div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc486" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc487">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc487" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc488"><ix:nonNumeric name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="Text_58ecfc84d1294622a88d78fe023cff0a" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated Statements of Operations.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc488" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc489">
<div><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-14</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc489" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc490"><ix:nonNumeric name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="Text_b53c3849ef1047b4a88c7708233d8454" contextRef="c20220101to20221231" escape="true" continuedAt="Text_854867be91d94c0e9c475ceb4cb576f11">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#xA0;</span>At December 31, 2022, we have share-based employee compensation plans, which are described more fully in Note 9 - Stock incentive plans. We account for those plans under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the employee&#8217;s requisite service period.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc490" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc491"><ix:continuation id="Text_854867be91d94c0e9c475ceb4cb576f11" continuedAt="Text_854867be91d94c0e9c475ceb4cb576f12">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc491" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc492"><ix:continuation id="Text_854867be91d94c0e9c475ceb4cb576f12">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of the option, stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc492" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc493">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc493" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc494"><ix:nonNumeric name="us-gaap:EarningsPerSharePolicyTextBlock" id="Text_c2650dafd7124c12aa8a667df749323e" contextRef="c20220101to20221231" escape="true">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Net loss per share:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore, these instruments are excluded from the computation of diluted EPS.&#160; See Note 11 - Earnings per share.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc494" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc495">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc495" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc496"><ix:nonNumeric name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" id="Text_f7df841837f643969d91cc9c5fe59032" contextRef="c20220101to20221231" escape="true" continuedAt="Text_9f91b1be9ca8463583d6349421a743c61">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Change in accounting principle:</span>&#xA0;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of a change in accounting principle which occurred in the second quarter of 2022. TransAct changed its method of inventory valuation from standard costing which approximates first-in first-out (&#8220;FIFO&#8221;) to the average costing methodology. All prior periods presented have been retrospectively adjusted to apply the new method of accounting. Certain prior period amounts have been adjusted to conform with the current year presentation</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span></div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc496" continuedAt="Text_6595e9b6ad1b465384fc331ccf8b3dc497"><ix:continuation id="Text_9f91b1be9ca8463583d6349421a743c61" continuedAt="Text_9f91b1be9ca8463583d6349421a743c62">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_6595e9b6ad1b465384fc331ccf8b3dc497"><ix:continuation id="Text_9f91b1be9ca8463583d6349421a743c62">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Reclassifications:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#xA0;</span>Certain reclassifications have been made to prior year financial statements to conform to classifications used in the current year.</div>
</ix:continuation></ix:continuation></div>
<div style="text-align: justify;"><br /></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:InventoryDisclosureTextBlock" id="Text_45f20a4b3277462ca95d5c449cb1d13e" contextRef="c20220101to20221231" escape="true" continuedAt="Text_d7ca9105400740f3aaddd9cb80bc92121">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">3. Inventories</div>
</ix:nonNumeric><ix:continuation id="Text_d7ca9105400740f3aaddd9cb80bc92121" continuedAt="Text_d7ca9105400740f3aaddd9cb80bc92122">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_d7ca9105400740f3aaddd9cb80bc92122" continuedAt="Text_d7ca9105400740f3aaddd9cb80bc92123"><ix:nonNumeric name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="Text_acb339a4c4204e22963c053bc787167a" contextRef="c20220101to20221231" escape="true" continuedAt="Text_b9f4c73769b6446dad74619cb1bfcddc1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of inventories are:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_d7ca9105400740f3aaddd9cb80bc92123" continuedAt="Text_d7ca9105400740f3aaddd9cb80bc92124"><ix:continuation id="Text_b9f4c73769b6446dad74619cb1bfcddc1" continuedAt="Text_b9f4c73769b6446dad74619cb1bfcddc2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_d7ca9105400740f3aaddd9cb80bc92124" continuedAt="Text_d7ca9105400740f3aaddd9cb80bc92125"><ix:continuation id="Text_b9f4c73769b6446dad74619cb1bfcddc2" continuedAt="Text_b9f4c73769b6446dad74619cb1bfcddc3">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Raw materials and purchased component parts</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves" id="Fact_383e1c3ae647446a8e2cda380803b969" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,884</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves" id="Fact_d99944a3e1f943ada1ce8d3ec4616c9d" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,499</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Work-in-process</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryWorkInProcessNetOfReserves" id="Fact_c0496853979645a0a4a0c16789d065b5" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryWorkInProcessNetOfReserves" id="Fact_48e0efa6a1584d8eacc69242fb17e3fd" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Finished goods</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryFinishedGoodsNetOfReserves" id="Fact_5596b4b9d5e5411997deba4fd56a1cd2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,144</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryFinishedGoodsNetOfReserves" id="Fact_b706629202f8498992516dfd4b22386c" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,201</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_ef88a11ee47b48c39d812d0d94a487af" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,028</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_b397cc039c7c4d228b03f980ec1902b7" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,711</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_d7ca9105400740f3aaddd9cb80bc92125"><ix:continuation id="Text_b9f4c73769b6446dad74619cb1bfcddc3">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">see Note 16, Change in Accounting Principle</div></td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="Text_6697c269e1004f1fa4e0153504dd2c36" contextRef="c20220101to20221231" escape="true" continuedAt="Text_fbb2609088c440ef96f24b4ebcfc520a1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">4. Fixed assets, net</div>
</ix:nonNumeric><ix:continuation id="Text_fbb2609088c440ef96f24b4ebcfc520a1" continuedAt="Text_fbb2609088c440ef96f24b4ebcfc520a2">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_fbb2609088c440ef96f24b4ebcfc520a2" continuedAt="Text_fbb2609088c440ef96f24b4ebcfc520a3"><ix:nonNumeric name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="Text_e566dc614a22472a8bcf8ff67893e125" contextRef="c20220101to20221231" escape="true" continuedAt="Text_6362fad2f9f84a419d44d325003484d51">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of fixed assets, net are:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_fbb2609088c440ef96f24b4ebcfc520a3" continuedAt="Text_fbb2609088c440ef96f24b4ebcfc520a4"><ix:continuation id="Text_6362fad2f9f84a419d44d325003484d51" continuedAt="Text_6362fad2f9f84a419d44d325003484d52">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_fbb2609088c440ef96f24b4ebcfc520a4"><ix:continuation id="Text_6362fad2f9f84a419d44d325003484d52">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tooling, machinery and equipment</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_566e8de61b47431abdb0ec96b71d9e1f" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,859</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_5fc575fb6a1a4077b92ceaeaab0938a5" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,694</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Furniture and office equipment</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_8d5d29a4b7114944bd592d42e241f5a6" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,882</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_539d3f37ac9247fdacb1f51963056855" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,660</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Computer software and equipment</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_e5fccc77f88041b882c237c6a9b3764d" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,348</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_a0691825d45e4a33b4de1249b999ffea" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,973</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leasehold improvements</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_12ed6798203f411f9ccf1fc0384c1c2f" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,883</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_b38a1ccd9cd1467097af1c34073014e2" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,872</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_4fcebf33452f4a9193847ead62537e8c" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,972</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_453df944655d4591961158962cd850df" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">18,199</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less: Accumulated depreciation and amortization</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_5a4c18ee0fba49f3bb92233f48b55f0a" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,656</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" id="Fact_890509f3deab4395941a73d23144dcd4" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,736</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_3adefa19e4aa42a6a4b92b7b743f36a4" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,316</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_61816ea4a1154532859ec352b3ed5411" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,463</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Construction in-process</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_063c533fdbd3481c9abbde0bcf835841" contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">465</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentGross" id="Fact_9fe76b85a8394ba99310f304f5e5e2c5" contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,221</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_47d108090eba4322a7fad9f37c71d7a2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,781</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_126c22fd6af74ee7be4e237f882f2c8d" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,684</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-15</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="Text_02dae1eef11e490ba4d04083cf52b1cc" contextRef="c20220101to20221231" escape="true" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc511">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">5. Intangible assets, net</div>
</ix:nonNumeric><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc511" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc512">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc512" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc513"><ix:nonNumeric name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="Text_2c9b6e33c54f441a8bdc5b9f421a3723" contextRef="c20220101to20221231" escape="true" continuedAt="Text_c897d44b5ccb45e290604445f57f8f401">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc513" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc514"><ix:continuation id="Text_c897d44b5ccb45e290604445f57f8f401" continuedAt="Text_c897d44b5ccb45e290604445f57f8f402">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc514" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc515"><ix:continuation id="Text_c897d44b5ccb45e290604445f57f8f402">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="14" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span>&#160;</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Purchased technology</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_205d637ac90a4bf08ea67475cdedc19d" contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,591</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_134c0bbd9150420780c9593812f91516" contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,349</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_80a79724344941a3a42a9a108e9407f2" contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,591</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_a61a8d9e9e2b45a39e6915a29fd0914e" contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,195</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Patents</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_cee7f8382401471387dc092d24296eb5" contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_e9e7fc77a55b416eb27f9394cf540d5c" contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_15920dae0721462ba032c6765e17a180" contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_437c423210064c85abe6d9bf4d044393" contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_44b685e163ce4c62960424e4a88c0199" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_6df3b55918774f08817b8d82d4d0ec3f" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,364</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsGross" id="Fact_86a119cff9ed488a820ce063f18bbf93" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,606</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" id="Fact_de8bcb27841d49babee22cacfa40c920" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,209</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc515" continuedAt="Text_a9b2a45780a44a19b777e5e10183cc516">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_a9b2a45780a44a19b777e5e10183cc516">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amortization expense was $<ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_1f602044c8d34b98b228d55230ed472d" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">155</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:AmortizationOfIntangibleAssets" id="Fact_b6653475fffb41a689f02f7222554aa5" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">186</ix:nonFraction> thousand in 2022 and 2021, respectively.&#160; Amortization expense for each of the next five years ending December 31 is expected to be as follows: $<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" id="Fact_70ba98556fff4df287f668538cb048bc" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">154</ix:nonFraction> thousand in 2023 and $<ix:nonFraction name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" id="Fact_529f1ca6319145eeb12404682f8d47e1" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">88</ix:nonFraction> thousand in 2024; and <ix:nonFraction name="tact:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" id="Fact_060af1618d774feca8476ad0d8e261c8" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt-sec:numwordsen">none</ix:nonFraction> thereafter.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="Text_52ea3c87be4845ddb1334c5734862f42" contextRef="c20220101to20221231" escape="true" continuedAt="Text_75e7e98416d94d2291d79f1a3e3aaf8c1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">6. Accrued liabilities</div>
</ix:nonNumeric><ix:continuation id="Text_75e7e98416d94d2291d79f1a3e3aaf8c1" continuedAt="Text_75e7e98416d94d2291d79f1a3e3aaf8c2">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_75e7e98416d94d2291d79f1a3e3aaf8c2" continuedAt="Text_75e7e98416d94d2291d79f1a3e3aaf8c3"><ix:nonNumeric name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="Text_c9185714c13c4cb4bddb0fa5041bbf3e" contextRef="c20220101to20221231" escape="true" continuedAt="Text_49e863aa340341bfb39e68af8f7b62f81">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of accrued liabilities are:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_75e7e98416d94d2291d79f1a3e3aaf8c3" continuedAt="Text_75e7e98416d94d2291d79f1a3e3aaf8c4"><ix:continuation id="Text_49e863aa340341bfb39e68af8f7b62f81" continuedAt="Text_49e863aa340341bfb39e68af8f7b62f82">
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_75e7e98416d94d2291d79f1a3e3aaf8c4"><ix:continuation id="Text_49e863aa340341bfb39e68af8f7b62f82">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Salaries and compensation related</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EmployeeRelatedLiabilitiesCurrent" id="Fact_549e34ccf0e44129a7c95b510e244d02" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,744</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EmployeeRelatedLiabilitiesCurrent" id="Fact_c202e56d9d0141f88c768ed54de0673b" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,854</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_546b129c90a649ec89e28289ec03381d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">530</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:TaxesPayableCurrent" id="Fact_f486c24c06e4463388ac7c55d9faa266" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">79</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Professional and consulting</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedProfessionalFeesCurrent" id="Fact_12004ed6fe5e4637bf4644308882412d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">371</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedProfessionalFeesCurrent" id="Fact_3b35006ad4c44b84945aac3b32694d51" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">285</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesCurrent" id="Fact_9debebb91b3343a09121fce4d589ccaa" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">432</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OtherLiabilitiesCurrent" id="Fact_0b60d9c9c5214c77832e8a7179e618ee" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">676</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_fd2bb6f7775e43bba19fb003f42bd82c" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,077</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:AccruedLiabilitiesCurrent" id="Fact_3dd0dbbc4302419ab04aa11c2a985be3" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,894</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div><ix:nonNumeric name="us-gaap:CompensationAndEmployeeBenefitPlansTextBlock" id="Text_4be85790c86e46c8a04f2516e69d3c63" contextRef="c20220101to20221231" escape="true" continuedAt="Text_7e34d081ab73430291fbe6e2aff88d091">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">7. Retirement savings plan</div>
</ix:nonNumeric><ix:continuation id="Text_7e34d081ab73430291fbe6e2aff88d091" continuedAt="Text_7e34d081ab73430291fbe6e2aff88d092">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_7e34d081ab73430291fbe6e2aff88d092">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date of hire.&#160; We match employees&#8217; contributions at a rate of <ix:nonFraction name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" id="Fact_d426313d7c3b4d59b74de28a937f33d9" contextRef="c20220101to20221231" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">50</ix:nonFraction>% of employees&#8217; contributions up to the first <ix:nonFraction name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" id="Fact_df5ba21bf00e4e28a4a56e5cf567074c" contextRef="c20220101to20221231" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">6</ix:nonFraction>% of the employees&#8217; compensation contributed to the 401(k) plan.&#160; Our matching contributions were $<ix:nonFraction name="us-gaap:DefinedContributionPlanCostRecognized" id="Fact_04beed4c28f3402a82f3ded96b54eff3" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">355</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:DefinedContributionPlanCostRecognized" id="Fact_7f303b8eac4846f2aa74220a947ed066" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">312</ix:nonFraction> thousand in 2022 and 2021, respectively.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:DebtDisclosureTextBlock" id="Text_a429fc8dfa4349bfb0627a1706bd73fa" contextRef="c20220101to20221231" escape="true" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217671">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">8. Borrowings</div>
</ix:nonNumeric><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217671" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217672">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217672" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217673">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Credit Facility</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217673" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217674">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217674" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217675">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On March 13, 2020, we entered into a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;) and terminated our credit facility with TD Bank, N.A. The Siena Credit Facility provides for a revolving credit line of up to $<ix:nonFraction name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" id="Fact_69c32f11ffc94e60b5dd61a76da73f5d" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">10.0</ix:nonFraction> million and was originally scheduled to expire on March 13, 2023. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus <ix:nonFraction name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" id="Fact_8273bd6913284f9b854e16fda8859114" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">1.75</ix:nonFraction>%, (ii) the federal funds rate plus <ix:nonFraction name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" id="Fact_31dee2f9a4d844c1950814bcf8caaaf8" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">2.25</ix:nonFraction>%, and (iii) <ix:nonFraction name="us-gaap:DebtInstrumentInterestRateStatedPercentage" id="Fact_9ba6bfdcba6042ef895054265f2cd2dd" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">6.50</ix:nonFraction>%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility was $<ix:nonFraction name="us-gaap:DeferredFinanceCostsGross" id="Fact_f3a35ed9f8e548478f170b5e00d30301" contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">245</ix:nonFraction> thousand, which were reported as &#8220;Other current assets&#8221; in current assets and &#8220;Other assets&#8221; in non-current assets in the Consolidated Balance Sheets. We also pay a fee of <ix:nonFraction name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" id="Fact_51f7eac9f5084f80859b5019aefaee90" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="4" scale="-2" format="ixt:num-dot-decimal">0.50</ix:nonFraction>% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility are secured by a lien on substantially all the assets of the Company.</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217675" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217676">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217676" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217677">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Siena Credit Facility imposes a financial covenant on the Company and borrowings are subject to a borrowing base based on (i) <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable" id="Fact_5087626053ee4feba32b74b8a5269376" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">85</ix:nonFraction>% of eligible accounts receivable plus the lesser of (a) $<ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventory" id="Fact_a77bb2c458ad462bae84fb762df90ec6" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">5.0</ix:nonFraction> million and (b) <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" id="Fact_4df3aff4e0f441a687f508e5dbcb4fc7" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">50</ix:nonFraction>% of eligible raw material and <ix:nonFraction name="tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" id="Fact_d500cc9522d544689a4d7a83bfdaa95b" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">60</ix:nonFraction>% of finished goods inventory and restricts, among other things, our ability to incur additional indebtedness and create other liens. The three-month period from April 1, 2020 to June 30, 2020 was the first period we were subject to the original financial covenant, which required the Company to maintain a minimum EBITDA and continued through the 12-month period from April 1, 2020 to March 31, 2021. On July 21, 2021, the Company entered into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the Siena Credit Facility. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at least $<ix:nonFraction name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" id="Fact_bb30c30fa03547c19f5d11889f53ce22" contextRef="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">750</ix:nonFraction> thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month ending July 31, 2021. From July 31, 2021 through December 31, 2022, we remained in compliance with our excess availability covenant. As of December 31, 2022, we had $<ix:nonFraction name="us-gaap:SecuredDebt" id="Fact_90bc990027f7454fb7b91bc6a5729392" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.3</ix:nonFraction> million of outstanding borrowings under the Siena Credit Facility and $<ix:nonFraction name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" id="Fact_b98c2cc23f6a4b67939317479b380862" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">3.9</ix:nonFraction> million of net borrowing capacity available under the Siena Credit Facility.</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217677" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217678">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217678" continuedAt="Text_a89b7be744c048f0bd7a24ac6de217679">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Siena Credit Facility, as amended by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with the Siena Credit Facility Amendment No. 2. The Siena Credit Facility Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans.</div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-16</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de217679" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176710">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176710" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176711">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The changes to the Siena Credit Facility provided for in Siena Credit Facility Amendment No. 2 include, among other things, the following:</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176711" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176712">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176712" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176713">
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(i)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The extension of the maturity date from March 13, 2023 to March 13, 2025; and</div></td>
  </tr>
</table>
</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176713" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176714">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176714" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176715">
<div>
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(ii)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The termination of the existing blocked account control agreement and entry into a new &#8220;springing&#8221; deposit account control agreement, permitting the Company to direct the use of funds in its deposit account until such time as (a) the sum of excess availability under Siena Credit Facility (as amended) and unrestricted cash is less than $<ix:nonFraction name="tact:DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" id="Fact_d309fcaec48d4e6892a341e040e7374a" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="-6" scale="6" format="ixt:num-dot-decimal">5</ix:nonFraction> million for <ix:nonNumeric name="tact:DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" id="Fact_b2c597c26c5d4c139894264a78106ff6" contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" format="ixt-sec:durday">3</ix:nonNumeric> consecutive business days or (b) an event of default occurs and is continuing.</div></td>
  </tr>
</table>
</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176715" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176716">
<div style="display:none;"><br /></div>
<div style="text-align: justify; text-indent: -18pt; margin-left: 36pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176716" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176717">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the Amended Fee Letter requires the Company, while it retains the ability to direct the use of funds in the deposit account, to maintain outstanding borrowings of at least $<ix:nonFraction name="tact:DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" id="Fact_2a021cb230e64dffad390d690adb204f" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">2,250,000</ix:nonFraction> in principal amount. If the Company does not have the ability to direct the use of funds in the deposit account, then the Amended Fee Letter requires the Company to pay interest on at least $<ix:nonFraction name="tact:DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" id="Fact_dbb5fc7857b34aa38ea3361758cc0117" contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember" unitRef="U001" decimals="0" scale="0" format="ixt:num-dot-decimal">2,250,000</ix:nonFraction> principal amount of loans, whether or not such amount of loans is actually outstanding.</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176717" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176718">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176718" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176719">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">PPP Loan</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176719" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176720">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176720" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176721">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On May 1, 2020, the Company was granted the PPP Loan from Berkshire Bank in the aggregate amount of $<ix:nonFraction name="us-gaap:DebtInstrumentFaceAmount" id="Fact_cd9718f9b40f4efb9c4f2a83f5861828" contextRef="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.2</ix:nonFraction> million, pursuant to the PPP. Under the terms of the PPP, the PPP Loan would be forgiven to the extent that funds from the PPP Loan were used for payroll costs and costs to continue group health care benefits, as well as for interest on mortgage obligations incurred before February 15, 2020, rent under lease agreements in effect before February 15, 2020, utilities for which service began before February 15, 2020, and interest on debt obligations incurred before February 15, 2020, subject to conditions and limitations provided in the CARES Act. At least 60% (under the PPP terms, as amended) of the proceeds from the PPP Loan were required to be used for eligible payroll costs for the PPP Loan to be forgiven.</div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176721" continuedAt="Text_a89b7be744c048f0bd7a24ac6de2176722">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_a89b7be744c048f0bd7a24ac6de2176722">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 8, 2021, the Company received notifications from Berkshire Bank and the SBA that the PPP Loan (including all interest accrued thereon) of $<ix:nonFraction name="us-gaap:DebtInstrumentDecreaseForgiveness" id="Fact_dfaa2f600cd04e639c00b864c95774de" contextRef="c20210701to20210701_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.2</ix:nonFraction> million had been fully forgiven by the SBA and that the forgiveness payment date was July 1, 2021. The forgiveness of the PPP Loan was reported as &#8220;Gain on forgiveness of long-term debt&#8221; in the Consolidated Statement of Operations during the year ended December 31, 2021.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="Text_da76e37629e04642b6231ec47d5ba588" contextRef="c20220101to20221231" escape="true" continuedAt="Text_9038e65ef69747df95d590b3410e21661">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">9. Stock incentive plans</div>
</ix:nonNumeric><ix:continuation id="Text_9038e65ef69747df95d590b3410e21661" continuedAt="Text_9038e65ef69747df95d590b3410e21662">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21662" continuedAt="Text_9038e65ef69747df95d590b3410e21663">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Stock incentive plans</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">.</span>&#160; We currently have <ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" id="Fact_74dce9cdc2ed40bc8e934cd85eb5a32e" contextRef="c20220101to20221231" unitRef="U007" decimals="INF" scale="0" format="ixt-sec:numwordsen">two</ix:nonFraction> stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans have exercise prices equal to <ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" id="Fact_dbda0c3e1fca4110890bde30a77850f9" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">100</ix:nonFraction>% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a <ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Fact_99fc37877690409d840814720bf77e1e" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember" format="ixt-sec:durwordsen">ten-year</ix:nonNumeric> term and generally vest over a <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_40a19de455c54476a2dca9722da07673" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember" format="ixt-sec:durwordsen">two-year</ix:nonNumeric> to <ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="Fact_706529770f1c4f57afcdfd8495e92973" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember" format="ixt-sec:durwordsen">four-year</ix:nonNumeric> period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the 2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2020, we are authorized to grant awards of up to <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" id="Fact_8688f53cd29b4a1ea5ced3d994506edc" contextRef="c20221231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">2,200,000</ix:nonFraction> shares of TransAct common stock.&#160; At December 31, 2022, <ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" id="Fact_919c41a1c2b9425990009567483a84f7" contextRef="c20221231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">347,652</ix:nonFraction> shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21663" continuedAt="Text_9038e65ef69747df95d590b3410e21664">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21664" continuedAt="Text_9038e65ef69747df95d590b3410e21665">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2022 and 2021 was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_f01a51aeaad2469293e4fe7341a5d670" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">4.39</ix:nonFraction> and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_c384a5b4ff8e480eaeacf0989c7558e7" contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">5.41</ix:nonFraction>, respectively.&#160; We also issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock units was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_ecb1820c3aef4b8b95697d02a8b0408d" contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.43</ix:nonFraction> and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_a662e4000cf04b0dbdc80e8bf0e2f163" contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">10.27</ix:nonFraction> in 2022 and 2021, respectively.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21665" continuedAt="Text_9038e65ef69747df95d590b3410e21666">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21666" continuedAt="Text_9038e65ef69747df95d590b3410e21667"><ix:nonNumeric name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="Text_443bc1fe568e41aa8f39dc0d1190791a" contextRef="c20220101to20221231" escape="true" continuedAt="Text_81caea6fd8f14d5db7ed476dda770b1f1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2022 and 2021 and a discussion of our methodology for developing each of the assumptions used in the valuation model:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21667" continuedAt="Text_9038e65ef69747df95d590b3410e21668"><ix:continuation id="Text_81caea6fd8f14d5db7ed476dda770b1f1" continuedAt="Text_81caea6fd8f14d5db7ed476dda770b1f2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21668" continuedAt="Text_9038e65ef69747df95d590b3410e21669"><ix:continuation id="Text_81caea6fd8f14d5db7ed476dda770b1f2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected option term (in years)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Fact_545b60ebe2cc436aad5fcfea15b6ce05" contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:duryear">7.1</ix:nonNumeric></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" id="Fact_b635e86829534f35a5b879a78de33e7f" contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:duryear">6.9</ix:nonNumeric></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected volatility</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" id="Fact_1b4a8fe76c184a109f9b4f41cf76a766" contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">51.3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" id="Fact_091065953f1a4c23b62ec0e7d72aa776" contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">50.5</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Risk-free interest rate</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" id="Fact_ac95c92ae8484bb6a4b889d2cef6a85c" contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">2.2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" id="Fact_13cc8eb37633470f8cba83b464fd2303" contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Dividend yield</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" id="Fact_5accab64a0a14b369e4e79ced775baa0" contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.0</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" id="Fact_558df1d67d924fcc9280dd5ab746e477" contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.0</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e21669" continuedAt="Text_9038e65ef69747df95d590b3410e216610">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216610" continuedAt="Text_9038e65ef69747df95d590b3410e216611">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Expected Option Term</span> - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted have a maximum term of <ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="Fact_0f2e8836affa498daa4d3a06f1d9900d" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member" format="ixt-sec:durwordsen">ten years</ix:nonNumeric> and an increase in the expected term will increase compensation expense.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216611" continuedAt="Text_9038e65ef69747df95d590b3410e216612">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216612" continuedAt="Text_9038e65ef69747df95d590b3410e216613">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Expected Volatility</span> &#8211; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of the grant.&#160; An increase in the expected volatility factor will increase compensation expense.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216613" continuedAt="Text_9038e65ef69747df95d590b3410e216614">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216614" continuedAt="Text_9038e65ef69747df95d590b3410e216615">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Risk-Free Interest Rate</span> - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will increase compensation expense.</div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-17</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_9038e65ef69747df95d590b3410e216615" continuedAt="Text_9038e65ef69747df95d590b3410e216616">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216616" continuedAt="Text_9038e65ef69747df95d590b3410e216617">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Dividend Yield</span> &#8211;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will decrease compensation expense.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216617" continuedAt="Text_9038e65ef69747df95d590b3410e216618">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216618" continuedAt="Text_9038e65ef69747df95d590b3410e216619">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For both 2022 and 2021, we recorded $<ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_f2499879cf5e4316a2c12297a392544d" contextRef="c20220101to20221231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:AllocatedShareBasedCompensationExpense" id="Fact_acd1781bb315430391ce86e07d1cfd22" contextRef="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.2</ix:nonFraction></ix:nonFraction> million of share-based compensation expense included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also recorded income tax benefits of $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" id="Fact_d08b3822d77643a3972ed08ea4630613" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" id="Fact_7a21625d36c449849bfeab5d51e8d59e" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.3</ix:nonFraction></ix:nonFraction> million in both 2022 and 2021, related to such share-based compensation.&#160; At December 31, 2022, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216619" continuedAt="Text_9038e65ef69747df95d590b3410e216620">
<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216620" continuedAt="Text_9038e65ef69747df95d590b3410e216621"><ix:nonNumeric name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="Text_629fd486a6bb45a4a9c5750f6f4cd8a8" contextRef="c20220101to20221231" escape="true" continuedAt="Text_3b91eb55b4be45b88904793ebc0198721">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan is summarized below:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216621" continuedAt="Text_9038e65ef69747df95d590b3410e216622"><ix:continuation id="Text_3b91eb55b4be45b88904793ebc0198721" continuedAt="Text_3b91eb55b4be45b88904793ebc0198722">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216622" continuedAt="Text_9038e65ef69747df95d590b3410e216623"><ix:continuation id="Text_3b91eb55b4be45b88904793ebc0198722" continuedAt="Text_3b91eb55b4be45b88904793ebc0198723">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted Stock Units</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Shares</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Average Price*</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Units</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price**</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2021</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" id="Fact_c652e92a72f8453eb19eec94e11452f2" contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,269,355</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" id="Fact_d4d13609e6bd48d79e77aa0411834747" contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.18</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" id="Fact_95b798178efa4ccba17c47cef220fa58" contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">155,225</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_fe6033ed1fa94d7992391e7c1f21fb28" contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">10.28</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Granted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" id="Fact_0c1b6d715dc04e72995ee692a47afce6" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">181,100</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" id="Fact_1a046905053745888916466b089b14b6" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.16</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" id="Fact_17bebaf8f17b43a39faac647206de7cf" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">129,700</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" id="Fact_a6c042732c2c48afb323404407813393" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.78</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Exercised</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_78ebaab3eead4e90ae6c38c7c02807a7" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">17,500</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" id="Fact_87b7ef37c79e4149b77eae5d38631de4" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">6.70</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" id="Fact_c17fd6ad4fe7484a9c003b8a070e25bf" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">47,931</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" id="Fact_7188852d38b04de483263809d5a6e5d5" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">10.22</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Forfeited</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" id="Fact_08525a4567ee4bb48530298a57be3d31" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">49,250</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" id="Fact_8e2cbb1bc4a8489883618e5b691d6a7c" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.38</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" id="Fact_23a5712d659c40f1ae2393b105970b1e" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">22,708</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" id="Fact_61428b6b7da94fe39e2fe74edcaf3bc3" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">10.27</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expired</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" id="Fact_5afceb7d4727413992fe570c52f7dfa7" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">27,750</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" id="Fact_ebc9c40a649a4c66aec06f5d468342e7" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">8.51</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" id="Fact_8ae03b0610e34051819c6192510de649" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="INF" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" id="Fact_7a344c6af5824c82bcf60226d39b1cc2" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2022</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" id="Fact_1717748a362e4532ba44881c3931207b" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,355,955</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" id="Fact_97d1d830fa1a4992be9b569010ebcbbd" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.08</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" id="Fact_420802cca1c546ca8db4707da5e5ed8f" contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">214,286</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" id="Fact_e3949a5fc12045c3b5160a0af88db9e2" contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.28</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216623" continuedAt="Text_9038e65ef69747df95d590b3410e216624"><ix:continuation id="Text_3b91eb55b4be45b88904793ebc0198723" continuedAt="Text_3b91eb55b4be45b88904793ebc0198724">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216624" continuedAt="Text_9038e65ef69747df95d590b3410e216625"><ix:continuation id="Text_3b91eb55b4be45b88904793ebc0198724" continuedAt="Text_3b91eb55b4be45b88904793ebc0198725">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:footnote id="Foot_02c9893d755d46e09c2c806bd0739d14" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted average exercise price per share</ix:footnote></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216625" continuedAt="Text_9038e65ef69747df95d590b3410e216626"><ix:continuation id="Text_3b91eb55b4be45b88904793ebc0198725">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:footnote id="Foot_42b55853fb414ccdba8ab0b20970caa0" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted average grant stock price per share</ix:footnote></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216626" continuedAt="Text_9038e65ef69747df95d590b3410e216627">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216627" continuedAt="Text_9038e65ef69747df95d590b3410e216628"><ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" id="Text_b4ce87dfa5d941c482369c20af06926f" contextRef="c20220101to20221231" escape="true" continuedAt="Text_4a70c57893024e9090d826a36fda7e051">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2022:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216628" continuedAt="Text_9038e65ef69747df95d590b3410e216629"><ix:continuation id="Text_4a70c57893024e9090d826a36fda7e051" continuedAt="Text_4a70c57893024e9090d826a36fda7e052">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216629" continuedAt="Text_9038e65ef69747df95d590b3410e216630"><ix:continuation id="Text_4a70c57893024e9090d826a36fda7e052" continuedAt="Text_4a70c57893024e9090d826a36fda7e053">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="14" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="14" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards That Are Exercisable</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" id="Fact_647128502a934eaa9f26202c13a4de97" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">1,355,955</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" id="Fact_76e5d30a0083430fb73cbadab39dd773" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.08</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" id="Fact_bc5f2f5569a64f649e60ed7fb510fa56" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">224</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" id="Fact_14d134c5fbe340148268d5dfe009ec06" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">5.0</ix:nonNumeric></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" id="Fact_f092f0455590467cb8eebecca5ce51d3" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">971,865</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" id="Fact_df3938f8c7c24d37a5be348b6fd38137" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">9.23</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" id="Fact_cfb45ef7900346ca8776ce3d8576bb96" contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">93</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" id="Fact_23b1a39ee72346a6a27a3554f4ad3103" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">3.7</ix:nonNumeric></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 20%;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted stock units</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" id="Fact_d1da7749f26c446aae261ec3d4944e5b" contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">145,687</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" id="Fact_6165e8fea0bf42e6bd40c15cef980e02" contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U003" decimals="0" scale="0" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" id="Fact_26353ea2522f42dda462bae24e92ac10" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">921</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" id="Fact_22fa15bb2b77457996465fc4e131d672" contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" format="ixt-sec:duryear">2.1</ix:nonNumeric></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 7%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216630" continuedAt="Text_9038e65ef69747df95d590b3410e216631"><ix:continuation id="Text_4a70c57893024e9090d826a36fda7e053" continuedAt="Text_4a70c57893024e9090d826a36fda7e054">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216631" continuedAt="Text_9038e65ef69747df95d590b3410e216632"><ix:continuation id="Text_4a70c57893024e9090d826a36fda7e054" continuedAt="Text_4a70c57893024e9090d826a36fda7e055">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:footnote id="Foot_8e847a402d8648cd96b6309063cbbf53" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted average exercise price per share</ix:footnote></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216632" continuedAt="Text_9038e65ef69747df95d590b3410e216633"><ix:continuation id="Text_4a70c57893024e9090d826a36fda7e055">
<table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:footnote id="Foot_d955d8fd57964b2cbb978471388690e9" footnoteRole="http://www.xbrl.org/2003/role/footnote" xml:lang="en-US">weighted-average contractual remaining term in years</ix:footnote></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216633" continuedAt="Text_9038e65ef69747df95d590b3410e216634">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216634" continuedAt="Text_9038e65ef69747df95d590b3410e216635">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2022, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" id="Fact_fed46d4a17364915ba0339c5c02e9b4c" contextRef="c20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">2.1</ix:nonFraction> million, which is expected to be recognized over a weighted average period of <ix:nonNumeric name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="Fact_9e09a91f0b804b84bf780ab57f49f9b8" contextRef="c20220101to20221231" format="ixt-sec:duryear">2.6</ix:nonNumeric> years.</div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216635" continuedAt="Text_9038e65ef69747df95d590b3410e216636">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_9038e65ef69747df95d590b3410e216636">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The total fair value of awards vested was $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" id="Fact_16a6777b7790402bb07d5c6f66b7a47d" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.6</ix:nonFraction> million and $<ix:nonFraction name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" id="Fact_5c63642570674920ad6f39eadcdef0bc" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.7</ix:nonFraction> million during the years ended December 31, 2022 and 2021, respectively.&#160; The total intrinsic value (which is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2022 and 2021 was $<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" id="Fact_43c515e056fa48418884d7c2e9070d2e" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">40</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" id="Fact_a6e6554b58864081830ef91af33aa13b" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">268</ix:nonFraction> thousand, respectively, and cash received from option exercises was <span style="-sec-ix-hidden:Fact_b7a5dc04200f41ee9ee14fafb453e89a">zero</span> and $<ix:nonFraction name="us-gaap:ProceedsFromStockOptionsExercised" id="Fact_7acc678a27a64579b47690b1bdfeb517" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">436</ix:nonFraction> thousand in 2022 and 2021, respectively.&#160; <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_c742c5bbbdfd476caee808c1b3e8efbd" contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">17,500</ix:nonFraction> and <ix:nonFraction name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" id="Fact_3916f3e867b142ae8c000a396c13a113" contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">97,000</ix:nonFraction> stock options were exercised during the year ended December 31, 2022 and 2021, respectively.&#160; We recorded a realized tax provision in 2022 and 2021 from equity-based awards of $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" id="Fact_6ca289a61dc246e59d6159c5ebd67728" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">13</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" id="Fact_413c3a8ed94841448a5a9fdb1398a046" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">35</ix:nonFraction> thousand, respectively, related to options exercised.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:IncomeTaxDisclosureTextBlock" id="Text_762da0a85f5b417aa5d8f3d477394e38" contextRef="c20220101to20221231" escape="true" continuedAt="Text_473b291ed9a349a48dd016274569f8241">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">10. Income taxes</div>
</ix:nonNumeric><ix:continuation id="Text_473b291ed9a349a48dd016274569f8241" continuedAt="Text_473b291ed9a349a48dd016274569f8242">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8242" continuedAt="Text_473b291ed9a349a48dd016274569f8243"><ix:nonNumeric name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="Text_4c3ec231e79241219f4c528df41dbdac" contextRef="c20220101to20221231" escape="true" continuedAt="Text_b9b6f79d6a4548cdb666d71f263da22a1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of the income tax benefit are as follows:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8243" continuedAt="Text_473b291ed9a349a48dd016274569f8244"><ix:continuation id="Text_b9b6f79d6a4548cdb666d71f263da22a1" continuedAt="Text_b9b6f79d6a4548cdb666d71f263da22a2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8244" continuedAt="Text_473b291ed9a349a48dd016274569f8245"><ix:continuation id="Text_b9b6f79d6a4548cdb666d71f263da22a2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" id="Fact_2036a8e46f1641f9bf4c03b4508d6359" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">149</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentFederalTaxExpenseBenefit" id="Fact_95d45f9296314278ae2ff005c24fd012" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">26</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" id="Fact_343fb1f8a6fe4a2b912ae016576248f6" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">110</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" id="Fact_5301c06c08e74a9cbd7689082bf4becc" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">51</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CurrentForeignTaxExpenseBenefit" id="Fact_4e81d74d439e4439ba7031a5e97d67ab" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">83</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentForeignTaxExpenseBenefit" id="Fact_4c9125d6f49c48b597fa96153c4be0c5" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentIncomeTaxExpenseBenefit" id="Fact_d815ce00fe434a0cb6171c31a849e5d3" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">176</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CurrentIncomeTaxExpenseBenefit" id="Fact_f0548f0a39174523b90374c7b408ad1c" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">79</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" id="Fact_a9ecf342f07b4b6bb4d501cdd1252d5a" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,924</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" id="Fact_a2b884195254430bbdd574edb58cba2b" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,057</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" id="Fact_3a28d277ca5c43f7a7e7911d7347b7ac" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">217</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" id="Fact_e43a42386ad444b586bd7e438a1813bb" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">62</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" id="Fact_e828246ba6f34286baed84131ac3ecd0" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" id="Fact_9f9cc403ba51444a8669807be5012d47" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_bedb0f2f8e1f49cc97a9b70b50c09925" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,141</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_4bfc5e34f8914050aae79191e657746c" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,121</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_93d8e46c25bc4d899e560d353260ff8c" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,965</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_124d14cce1d44e26a1b35a1e78b8bb6c" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,042</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8245" continuedAt="Text_473b291ed9a349a48dd016274569f8246">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-18</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_473b291ed9a349a48dd016274569f8246" continuedAt="Text_473b291ed9a349a48dd016274569f8247">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Our effective tax rates were (</span><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_57b06b22d4d546609cb005f1a965b20f" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">24.9</ix:nonFraction>%<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">) and (</span><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_62d05f7a0e714c5096c94d35261dc352" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">33.6</ix:nonFraction>%<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">) for </span>2022<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and </span>2021<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">, respectively.&#160; The tax benefit recorded for 2022 includes the recognition of stock option cancellations for which no benefit was realized and the benefit recorded for 2021 included the recognition of the gain on the forgiveness of the PPP Loan which was not taxable</span>.</div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8247" continuedAt="Text_473b291ed9a349a48dd016274569f8248">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8248" continuedAt="Text_473b291ed9a349a48dd016274569f8249">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">At December 31, 2022, we have $<ix:nonFraction name="tact:OperatingLossCarryforwardsNotSubjectToExpiration" id="Fact_a707eaa85bb146d1be6cd57118e89b54" contextRef="c20221231_IncomeTaxAuthorityAxis_DomesticCountryMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">10.9</ix:nonFraction> million of federal net operating loss carryforwards (with an unlimited carryforward), $<ix:nonFraction name="tact:OperatingLossCarryforwardsSubjectToExpiration" id="Fact_0e753c6712f74bd2a5f43d6be5b48eda" contextRef="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">0.2</ix:nonFraction> million of tax-effected state net operating loss carryforwards (which have varying lives), $<ix:nonFraction name="tact:TaxCreditCarryforwardAmountSubjectToExpiration" id="Fact_4d7bc87d81ef46068f78f2b336d39a55" contextRef="c20221231_TaxCreditCarryforwardAxis_ResearchMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.2</ix:nonFraction> million in R&amp;D credit carryforwards (which generally have a <ix:nonNumeric name="tact:TaxCreditCarryforwardExpirationPeriod" id="Fact_c7497ce27c28450981598df5988dea26" contextRef="c20220101to20221231_TaxCreditCarryforwardAxis_ResearchMember" format="ixt-sec:durwordsen">twenty year</ix:nonNumeric> life), and <ix:nonFraction name="tact:TaxCreditCarryforwardAmountSubjectToExpiration" id="Fact_62ff675ce3f94013affbc60539306fae" contextRef="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember" unitRef="U001" decimals="-6" scale="6" format="ixt-sec:numwordsen">no</ix:nonFraction> state tax credit carryforwards.&#160; Foreign income (loss) before taxes was $<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" id="Fact_605936305474420e830611155db1d333" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24</ix:nonFraction> thousand and ($<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" id="Fact_2e854583b76a45d0b15a69c9dd6db44f" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">404</ix:nonFraction>) thousand in 2022 and 2021, respectively.</div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f8249" continuedAt="Text_473b291ed9a349a48dd016274569f82410">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82410" continuedAt="Text_473b291ed9a349a48dd016274569f82411"><ix:nonNumeric name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="Text_623cf2a1daa64270a86c67eb451df3ce" contextRef="c20220101to20221231" escape="true" continuedAt="Text_05c4b5e40b7c4f96b654cf8444deb97a1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our deferred tax assets and liabilities were comprised of the following:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82411" continuedAt="Text_473b291ed9a349a48dd016274569f82412"><ix:continuation id="Text_05c4b5e40b7c4f96b654cf8444deb97a1" continuedAt="Text_05c4b5e40b7c4f96b654cf8444deb97a2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82412" continuedAt="Text_473b291ed9a349a48dd016274569f82413"><ix:continuation id="Text_05c4b5e40b7c4f96b654cf8444deb97a2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal net operating losses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" id="Fact_16abadb0f1294b1f970a723503c7a6a2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,297</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" id="Fact_2665fc0b1ee44dd5b1d39a3fe0f24fa8" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,978</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign net operating losses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" id="Fact_88edf2c61b3546b59016c35a82b1501c" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">676</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" id="Fact_85d3d7c498404f8e8bedaf5cca7cb113" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">624</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State net operating losses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" id="Fact_c32ccc0742c243068c9047c74299d6de" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">149</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" id="Fact_ba7e9d8a495741279dda3294061e6cca" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" id="Fact_e8ba781de59a4fe7afff21db820e3381" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" id="Fact_bb053245ae684b0495d400c40bd1d346" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">306</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Capitalized R&amp;D expenses</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" id="Fact_7705c60123fc49c9aa91a1d2787d7859" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,708</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment" id="Fact_7c2983613c2946be9d14500f9cfdc3e2" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventory reserves</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInventory" id="Fact_2bfcfd9994e14c7fa32858ce3baddcfc" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">648</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsInventory" id="Fact_ff57506b7c0f4029938ac6d7786dd363" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">710</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsDeferredIncome" id="Fact_e152ed207a1c4f7a8f8f8e6ed6d12294" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">41</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsDeferredIncome" id="Fact_f9242765b4ee40d5a940c0a757c18cc6" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Warranty reserve</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" id="Fact_247a2ce379e14881b2a9efa0751caa24" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" id="Fact_ee9eabcb6cbf45b78e9566121d1c0fe3" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">22</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock compensation expense</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" id="Fact_3a1365cd768a4dc58913edb95ef73754" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">769</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" id="Fact_75baf266d4534252a6afb1753feac6c3" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">796</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other accrued compensation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" id="Fact_39ae37214c1d450cb695314f03d5928d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">222</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" id="Fact_e9c68087807548c09097b7e7d679acf2" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">308</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit carryforward</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" id="Fact_faeb8041d5254e48ab65f9e32b5a0211" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,238</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch" id="Fact_81645de356c349f1ad532baa92f3ca08" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">901</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other liabilities and reserves</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOther" id="Fact_022d50737d954193bdfa4b8e8c600692" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">463</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsOther" id="Fact_2577dd2af1874f899b7e0bfac9859902" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">250</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross deferred tax assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" id="Fact_5a6568a0e93f467c864f10fec24ed765" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,228</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsGross" id="Fact_7be2df3a19af4237bf919019f5642693" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,919</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredTaxAssetsValuationAllowance" id="Fact_e2ec8936c16c4b49bd405fbc676f9344" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">656</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredTaxAssetsValuationAllowance" id="Fact_a6aff7d63894481f8b78b958c90d499e" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">733</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -18pt; margin-left: 45pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" id="Fact_6ba1b36eaefc48f8bace56895ae8547a" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,572</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsNet" id="Fact_855ebcc7b9a6467ba707ee932a179246" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,186</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax liabilities:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" id="Fact_32d764e455954ae3bfb3b5fda1eab3e7" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">196</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" id="Fact_a5e60e7381cf4f25b8327cd69dd1db86" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesOther" id="Fact_bd1cff22b6d843a59ae370875afe1fea" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">49</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilitiesOther" id="Fact_9f19197ee4e14b29a215f0d5660e91bf" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax liabilities</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilities" id="Fact_4733597541114f6eb29d30185eeb3ff9" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">245</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxLiabilities" id="Fact_616e903768d84fe598463cb6bfb7458c" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net deferred tax assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsLiabilitiesNet" id="Fact_dfd25beab9a44c60bbfdc2bd812172cb" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,327</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredTaxAssetsLiabilitiesNet" id="Fact_fa6876a2da5c48be8d63e29e2a4f18f8" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82413" continuedAt="Text_473b291ed9a349a48dd016274569f82414">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82414" continuedAt="Text_473b291ed9a349a48dd016274569f82415"><ix:nonNumeric name="us-gaap:SummaryOfValuationAllowanceTextBlock" id="Text_ee4413c3e26a485394a68ad2b5355c39" contextRef="c20220101to20221231" escape="true" continuedAt="Text_cc5861ed11244981a5893d2bbed7110d1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022 and 2021, we had a $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_b698a9eae4d640b2811fb11fcb57880d" contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">656</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_cb1ece06fea14baab39de0c2f4f9a942" contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">733</ix:nonFraction> thousand, respectively, of valuation allowances on our net operating loss carryforwards. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82415" continuedAt="Text_473b291ed9a349a48dd016274569f82416"><ix:continuation id="Text_cc5861ed11244981a5893d2bbed7110d1" continuedAt="Text_cc5861ed11244981a5893d2bbed7110d2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82416" continuedAt="Text_473b291ed9a349a48dd016274569f82417"><ix:continuation id="Text_cc5861ed11244981a5893d2bbed7110d2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_2c731a8b0e1a4057b9fe7b43cd15b109" contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">733</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_036f80bb3b174ae499821278a6e38567" contextRef="c20201231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">659</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Subtractions released to income tax provisions</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesDeductions" id="Fact_2bfde95821774d31b409505b2861c3e2" contextRef="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">77</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesDeductions" id="Fact_aa0f9a2c29734c8880dddb33a7fb7e2d" contextRef="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to income tax provision</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_c96fd23149cf46319efd464890de4128" contextRef="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" id="Fact_d67b60b7dbb64a9b878377244825c887" contextRef="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">74</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_9c0aedd2d3664800a8c014d899750c65" contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">656</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ValuationAllowancesAndReservesBalance" id="Fact_2ba5c171516b4adf95e9fddbc07a7b38" contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">733</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82417" continuedAt="Text_473b291ed9a349a48dd016274569f82418">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82418" continuedAt="Text_473b291ed9a349a48dd016274569f82419"><ix:nonNumeric name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="Text_94a3f824a5244ad89375b1904485abe4" contextRef="c20220101to20221231" escape="true" continuedAt="Text_80915ec10a5549618adb773f92a4efed1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82419" continuedAt="Text_473b291ed9a349a48dd016274569f82420"><ix:continuation id="Text_80915ec10a5549618adb773f92a4efed1" continuedAt="Text_80915ec10a5549618adb773f92a4efed2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82420" continuedAt="Text_473b291ed9a349a48dd016274569f82421"><ix:continuation id="Text_80915ec10a5549618adb773f92a4efed2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal statutory rate</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact_c27e506ae06942bb95196c2c8c14b392" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">21.0</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" id="Fact_6e2af26e262f4572a8999cde37e5fa14" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">21.0</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP loan forgiveness</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" id="Fact_7141c265b88d4eaeac3e68f78d93e52c" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" id="Fact_3d92d8eac6b6463f88fb2d2ae3c24efd" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">7.4</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" id="Fact_19ea7b4850e647099ae747871aae435a" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" id="Fact_c803cb11605d488cbd3e6622135cbf2c" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">7.1</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock award excess tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" id="Fact_eb14041d07a44a7585d65934eea9b575" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" id="Fact_fcdc86f6b9a6421585c6b88d7131e4b5" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State income taxes, net of federal income taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" id="Fact_a1b56b24f7ac413d8efd918c7374abfa" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.1</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" id="Fact_8b7a9cdb19944dbbb184104ef7d170a8" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.1</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Business meals and entertainment</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" id="Fact_f3a5746ab2884c2fbf757350fd270b05" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" id="Fact_c90bcdc833b149ed8f3528b38359bac9" contextRef="c20210101to20211231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Miscellaneous permanent items</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" id="Fact_a66755d6a1b0418b927224dcef6623e4" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" id="Fact_8a32512fa1c744f48d5d73ccfa443c73" contextRef="c20210101to20211231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.3</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Uncertain tax positions</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies" id="Fact_f469efda0e24483f8fa92a6bee22ccd3" contextRef="c20220101to20221231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.5</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies" id="Fact_c9ce221ac254455487bc7e5a9ded14f4" contextRef="c20210101to20211231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.4</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock option cancellations</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" id="Fact_6c77acda8bc141469f668bfe23cbfadf" contextRef="c20220101to20221231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">1.9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" id="Fact_92d9346dd44541fb987438c72b1d5055" contextRef="c20210101to20211231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.6</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance and tax accruals</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" id="Fact_0453051172604d8c97e0f439b252fd8c" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">1.0</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" id="Fact_942fcbe107534c819b596d8fe735d8dd" contextRef="c20210101to20211231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">1.2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" id="Fact_e5bdc576026e40c59d9d25184d2299f2" contextRef="c20220101to20221231" unitRef="U006" decimals="3" sign="-" scale="-2" format="ixt:num-dot-decimal">0.1</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" id="Fact_ad7a4911863b436988b634ee3482faf3" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">0.4</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective tax rate</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_fabf5bb12ee245b2adfdb62b7c1600de" contextRef="c20220101to20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">24.9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" id="Fact_9c4434b375cf47ebbd14d1e0ba61ff6a" contextRef="c20210101to20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">33.6</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82421" continuedAt="Text_473b291ed9a349a48dd016274569f82422">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-19</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_473b291ed9a349a48dd016274569f82422" continuedAt="Text_473b291ed9a349a48dd016274569f82423"><ix:nonNumeric name="us-gaap:SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" id="Text_716c1805467e49bea464193a16518b0f" contextRef="c20220101to20221231" escape="true" continuedAt="Text_c3664ffbbfe742e7b8f374f8936b25721">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We had $<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" id="Fact_0f7e36bc85a54ec69f3d1e18b87d2dc4" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">142</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" id="Fact_56c5ed7316f34096b1e4c95909467f51" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">144</ix:nonFraction> thousand of total gross unrecognized tax benefits at December 31, 2022 and 2021, respectively that, if recognized, would favorably affect the effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82423" continuedAt="Text_473b291ed9a349a48dd016274569f82424"><ix:continuation id="Text_c3664ffbbfe742e7b8f374f8936b25721" continuedAt="Text_c3664ffbbfe742e7b8f374f8936b25722">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82424" continuedAt="Text_473b291ed9a349a48dd016274569f82425"><ix:continuation id="Text_c3664ffbbfe742e7b8f374f8936b25722">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_8f2b1b5c1eb94a1b97401ff3a48187d5" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">144</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_604526f3b95f43f2b4e9be9940533b33" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">121</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tax positions taken during the current period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease" id="Fact_05627d71a55c4e0f8c31182fca9ac23f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">26</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease" id="Fact_fda2dcbab2794f7a89da9b85ef286af4" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">47</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lapse of statute of limitations</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" id="Fact_f525411033a440ceb278f80895b16c7f" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">28</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" id="Fact_acff6ec42fc24dc88ec2ecd84b5a3463" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_b127f9cda46d4561828782178ea3a790" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">142</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:UnrecognizedTaxBenefits" id="Fact_4537ed9a74904e2eb9cefa2ad6534a20" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">144</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82425" continuedAt="Text_473b291ed9a349a48dd016274569f82426">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82426" continuedAt="Text_473b291ed9a349a48dd016274569f82427">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We expect $<ix:nonFraction name="us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" id="Fact_74feac78af694c46a668bf67bc3fc4c2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">28</ix:nonFraction> thousand of the $<ix:nonFraction name="us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" id="Fact_45e663fdd09f4c6a9ef5980105e5599e" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">142</ix:nonFraction> thousand of unrecognized tax benefits will reverse in 2023 upon the expiration of the statute of limitations.</div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82427" continuedAt="Text_473b291ed9a349a48dd016274569f82428">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82428" continuedAt="Text_473b291ed9a349a48dd016274569f82429">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We recognize interest and penalties related to uncertain tax positions in the income tax provision.&#160; We have accrued interest and penalties related to uncertain tax positions of $<ix:nonFraction name="us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued" id="Fact_abbd5a6b117b442daeef52f308bf7e23" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">34</ix:nonFraction> thousand and $<ix:nonFraction name="us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued" id="Fact_d4deaf4cef524ef4a3a500b87470bad7" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20</ix:nonFraction> thousand as of December 31, 2022 and 2021, respectively.</div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82429" continuedAt="Text_473b291ed9a349a48dd016274569f82430">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_473b291ed9a349a48dd016274569f82430">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S. federal income tax, state and local, and foreign tax matters through 2018.&#160; However, our federal tax returns for the years 2019 through 2022 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:EarningsPerShareTextBlock" id="Text_e8296c5992864d07bfb0bb75feff0aeb" contextRef="c20220101to20221231" escape="true" continuedAt="Text_1580acaf826740e3848ce9f68bace1511">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">11. Earnings per share</div>
</ix:nonNumeric><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1511" continuedAt="Text_1580acaf826740e3848ce9f68bace1512">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1512" continuedAt="Text_1580acaf826740e3848ce9f68bace1513"><ix:nonNumeric name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="Text_9c1248e04f7c415cad93855f7da486ad" contextRef="c20220101to20221231" escape="true" continuedAt="Text_5d21b73c5cd5411fbb7e1aa216c16a3b1">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1513" continuedAt="Text_1580acaf826740e3848ce9f68bace1514"><ix:continuation id="Text_5d21b73c5cd5411fbb7e1aa216c16a3b1" continuedAt="Text_5d21b73c5cd5411fbb7e1aa216c16a3b2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1514" continuedAt="Text_1580acaf826740e3848ce9f68bace1515"><ix:continuation id="Text_5d21b73c5cd5411fbb7e1aa216c16a3b2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_b1cfb37121fd40bdaf3e26a10ce21675" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">5,936</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_81cf0afa10a946aca6e44d7a84cd9c11" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_154aa0b8975248c290ef4c3d1a75e0c7" contextRef="c20220101to20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,905</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_367018237bb14b93b3e3f1febb01d66f" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_0c315bd2a5554a959f4902d78a33558f" contextRef="c20220101to20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" id="Fact_dda2d87fa2414f6dabb2ac336ec1bbdf" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:fixed-zero">&#8211;</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_787dd2d6df0c4c4bbfd01980f5641676" contextRef="c20220101to20221231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,905</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_a9e7575f75ca45379d06482ce02c62b5" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_53940854cf194701bafd82f668ab692b" contextRef="c20220101to20221231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.60</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_10aaee96312c4982904e39e8d613482b" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_d9dfd61fa13b4eb4b5517fb65b141792" contextRef="c20220101to20221231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.60</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_882e8c06cbdf45cda4ede34d1c4af1c1" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1515" continuedAt="Text_1580acaf826740e3848ce9f68bace1516">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_1580acaf826740e3848ce9f68bace1516">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as 2022 and 2021, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive stock awards excluded from the computation of earnings per dilutive share were <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_36a7b7cf70164715ade9fa5be202548a" contextRef="c20220101to20221231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,463,000</ix:nonFraction> and <ix:nonFraction name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" id="Fact_75e37052e7f64823962fddd2a77cf6a5" contextRef="c20210101to20211231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">391,000</ix:nonFraction> at December 31, 2022 and 2021, respectively.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:TreasuryStockTextBlock" id="Text_afa424e1d2f745359b3dc0cccf9a8c42" contextRef="c20220101to20221231" escape="true" continuedAt="Text_efa7efc1ba444aabad2362f50a177b071">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">12. Stock repurchase program</div>
</ix:nonNumeric><ix:continuation id="Text_efa7efc1ba444aabad2362f50a177b071" continuedAt="Text_efa7efc1ba444aabad2362f50a177b072">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_efa7efc1ba444aabad2362f50a177b072">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160; Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2022 and 2021, we did <ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_12b02c1a237046b2932fd4f87c05738d" contextRef="c20220101to20221231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen"><ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_ed7a3c87de004551be8ac3e9c91f44db" contextRef="c20210101to20211231" unitRef="U002" decimals="INF" scale="0" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction>t repurchase any shares of our common stock.&#160; From January 1, 2005 through December 31, 2019, we repurchased a total of <ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodShares" id="Fact_e349c2bf019a458daa7e361cab3f0ac4" contextRef="c20050101to20191231" unitRef="U002" decimals="0" scale="0" format="ixt:num-dot-decimal">4,044,842</ix:nonFraction> shares of common stock for $<ix:nonFraction name="us-gaap:StockRepurchasedDuringPeriodValue" id="Fact_9c01741e0f5449f89cb7a9ae545dda2f" contextRef="c20050101to20191231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">32.1</ix:nonFraction> million, at an average price of $<ix:nonFraction name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" id="Fact_03bc2553e1e8434389436978b6ba5d90" contextRef="c20050101to20191231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">7.94</ix:nonFraction> per share.</div>
</ix:continuation></div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-20</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:SegmentReportingDisclosureTextBlock" id="Text_939bef70c0d64540892a844d8725a94a" contextRef="c20220101to20221231" escape="true" continuedAt="Text_2b8a43730029488d93a761213868ae641">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">13. Geographic area information</div>
</ix:nonNumeric><ix:continuation id="Text_2b8a43730029488d93a761213868ae641" continuedAt="Text_2b8a43730029488d93a761213868ae642">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_2b8a43730029488d93a761213868ae642" continuedAt="Text_2b8a43730029488d93a761213868ae643"><ix:nonNumeric name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="Text_13905b88d7334f81897864d4c40bab37" contextRef="c20220101to20221231" escape="true" continuedAt="Text_fcfc86652f7a4f158b6a8214e20b3acc1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the location of the customer and asset.</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_2b8a43730029488d93a761213868ae643" continuedAt="Text_2b8a43730029488d93a761213868ae644"><ix:continuation id="Text_fcfc86652f7a4f158b6a8214e20b3acc1" continuedAt="Text_fcfc86652f7a4f158b6a8214e20b3acc2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_2b8a43730029488d93a761213868ae644" continuedAt="Text_2b8a43730029488d93a761213868ae645"><ix:continuation id="Text_fcfc86652f7a4f158b6a8214e20b3acc2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_7553ae93ee5d47f48aaf4a099542106d" contextRef="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">44,034</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_55faef3f6056433d82c722cb09ab7835" contextRef="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">32,400</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_57da01f0d9e8421ba044190bdc775c03" contextRef="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">14,105</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_b0e1f385ea8a4a9f8a2e310202226624" contextRef="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,986</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_ab7e66a3a62649f68acac2f44331fa9c" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">58,139</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_905690516b5f4bc4b27f29ae10df172f" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,386</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Fixed assets, net:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_478770630e284ed48df2c90dc3085778" contextRef="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,252</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_8bafe332c2ae430594e3343bdeeea577" contextRef="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,770</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_ed0ed41f16b442bd8876780450e0def4" contextRef="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">529</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_3e0f2352cd124ca49a847ef398306d06" contextRef="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">914</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; padding-bottom: 4px;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_77ea1ae7ca5f48978711e1054b0b87a2" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,781</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:PropertyPlantAndEquipmentNet" id="Fact_f5d8d252104f4341842a27d77534cc61" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,684</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_2b8a43730029488d93a761213868ae645" continuedAt="Text_2b8a43730029488d93a761213868ae646">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_2b8a43730029488d93a761213868ae646">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to international customers were <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_5f9b1d9c39cf46c092774c574a06dfee" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">24</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_0710ab96b76245c59e316c284b4a3d54" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">18</ix:nonFraction>% of total sales in 2022 and 2021, respectively.&#160; Sales to Europe represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_7dd6f51cd832440d82db61314a680a58" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">68</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_7901c79b8c98406c9ee9aedec2729c80" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">53</ix:nonFraction>%, sales to the Pacific Rim (which includes Australia and Asia) represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_e3834217e41f4765a919291972bfee85" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">28</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_fa35db1c777e46d2a2ec6437833784de" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">35</ix:nonFraction>%, and sales to Canada represented <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_945b2a15fee54ed482983d80b75c92bb" contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">4</ix:nonFraction>% and <ix:nonFraction name="us-gaap:ConcentrationRiskPercentage1" id="Fact_0119130565e64697a56b8adf55007343" contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA" unitRef="U006" decimals="2" scale="-2" format="ixt:num-dot-decimal">11</ix:nonFraction>%&#160; of total international sales in 2022 and 2021, respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.</div>
</ix:continuation></div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:LesseeOperatingLeasesTextBlock" id="Text_5a7dc2c2b1cb4061a483a480c2de1e99" contextRef="c20220101to20221231" escape="true" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f361">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">14. Leases</div>
</ix:nonNumeric><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f361" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f362">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f362" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f363">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Operating lease expense was $</span><ix:nonFraction name="us-gaap:OperatingLeaseExpense" id="Fact_b48dcdc0c53045f3b0c0d1ce099f7a26" contextRef="c20210101to20211231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal"><ix:nonFraction name="us-gaap:OperatingLeaseExpense" id="Fact_a3b5f98bc29246139a3f0a4cd78e2cbf" contextRef="c20220101to20221231" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.0</ix:nonFraction></ix:nonFraction><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> million for both years ended December 31, </span>2022<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and </span>2021<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and is reported as </span>&#8220;Cost of sales,&#8221; &#8220;Engineering, design and product development expense,&#8221; &#8220;Selling and marketing expense,&#8221; and &#8220;General and administrative expense&#8221; in the Consolidated Statements of Operations.&#160; <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Operating costs include short-term lease costs, which were immaterial during the period.</span></div>
</ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f363" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f364">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f364" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f365"><ix:nonNumeric name="tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" id="Text_4eab533f0844421ebd1a6dd3b33f2c58" contextRef="c20220101to20221231" escape="true" continuedAt="Text_25f7fa0afe4e484394a46d468ad2e8901">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f365" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f366"><ix:continuation id="Text_25f7fa0afe4e484394a46d468ad2e8901" continuedAt="Text_25f7fa0afe4e484394a46d468ad2e8902">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f366" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f367"><ix:continuation id="Text_25f7fa0afe4e484394a46d468ad2e8902">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating cash outflows from leases</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeasePayments" id="Fact_e752242cfff949568cc4847f13d1339c" contextRef="c20220101to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">967</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeasePayments" id="Fact_3c1e12d3b44f468cbd677fd06466d5f0" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">982</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f367" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f368">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f368" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f369"><ix:nonNumeric name="tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" id="Text_5468d94eba274b49957e07039b061b03" contextRef="c20220101to20221231" escape="true" continuedAt="Text_3325971204484859aff912d0d126ab1f1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes additional information related to our leases:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f369" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f3610"><ix:continuation id="Text_3325971204484859aff912d0d126ab1f1" continuedAt="Text_3325971204484859aff912d0d126ab1f2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f3610" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f3611"><ix:continuation id="Text_3325971204484859aff912d0d126ab1f2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="6" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average remaining lease term (in years)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Fact_bd30c1b5c1e942d0a0bd5b4e9e78da1e" contextRef="c20221231" format="ixt-sec:duryear">2.7</ix:nonNumeric></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonNumeric name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="Fact_92027abc199e40848667bf7c8932b396" contextRef="c20211231" format="ixt-sec:duryear">3.5</ix:nonNumeric></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 76%;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average discount rate</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" id="Fact_ee9ce2bc31de4bfc84b8ee05655a8e37" contextRef="c20221231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.5</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" id="Fact_8898c0b50c7e4146aaeb41625f7bf0f4" contextRef="c20211231" unitRef="U006" decimals="3" scale="-2" format="ixt:num-dot-decimal">4.4</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f3611" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f3612">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br /></div>
</ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f3612" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f3613"><ix:nonNumeric name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="Text_5506cde2ef1549d78d0c07d838263a31" contextRef="c20220101to20221231" escape="true" continuedAt="Text_ba8e13c6d623452282480cd024dfc8611">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f3613" continuedAt="Text_5a5201e0d9a74671a6eb002561d72f3614"><ix:continuation id="Text_ba8e13c6d623452282480cd024dfc8611" continuedAt="Text_ba8e13c6d623452282480cd024dfc8612">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_5a5201e0d9a74671a6eb002561d72f3614"><ix:continuation id="Text_ba8e13c6d623452282480cd024dfc8612">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2023</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" id="Fact_495f3682c8974f86a6f3171c369c552e" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">972</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2024</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" id="Fact_282b95cbac84471aa9e3396cc887d136" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">1,022</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2025</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" id="Fact_04b45ea3f97c4124b4accfa66bda1114" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">710</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2026</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" id="Fact_f216597341d94a9b816fc02d601d6476" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">20</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total undiscounted lease payments</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" id="Fact_4c600375184f4181b48f70881f7c7f7d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,724</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less imputed interest</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" id="Fact_037059865d4f410c8a2ec51451d8fe24" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">166</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total lease liabilities</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingLeaseLiability" id="Fact_6e7229ebd5a44d0f8813425376c2435d" contextRef="c20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,558</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div><br /></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-21</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><br /></div>
<div><ix:nonNumeric name="us-gaap:QuarterlyFinancialInformationTextBlock" id="Text_e58080c8e8e74a9f8fdb44ee77736a6a" contextRef="c20220101to20221231" escape="true" continuedAt="Text_1ae19a0b79104fc5bf815ce558ff34d41">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">15. Quarterly results of operations (unaudited)</div>
</ix:nonNumeric><ix:continuation id="Text_1ae19a0b79104fc5bf815ce558ff34d41" continuedAt="Text_1ae19a0b79104fc5bf815ce558ff34d42">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_1ae19a0b79104fc5bf815ce558ff34d42" continuedAt="Text_1ae19a0b79104fc5bf815ce558ff34d43"><ix:nonNumeric name="us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock" id="Text_955f2bb3e42647958280ecce3bf167e6" contextRef="c20220101to20221231" escape="true" continuedAt="Text_0d0a6e6eca0f48fb92addd5a1407311b1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our quarterly results of operations for 2022 and 2021 are as follows:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_1ae19a0b79104fc5bf815ce558ff34d43" continuedAt="Text_1ae19a0b79104fc5bf815ce558ff34d44"><ix:continuation id="Text_0d0a6e6eca0f48fb92addd5a1407311b1" continuedAt="Text_0d0a6e6eca0f48fb92addd5a1407311b2">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_1ae19a0b79104fc5bf815ce558ff34d44"><ix:continuation id="Text_0d0a6e6eca0f48fb92addd5a1407311b2">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="14" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Quarter Ended</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 31</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">June 30</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">September 30</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_d9d51efa37054e0b959b712c9ae69697" contextRef="c20220101to20220331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,702</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_31bb5203c2ad47c6babfd007247ebc3b" contextRef="c20220401to20220630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">12,623</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_e4c36fe81b854962abb6fdffe147eb2e" contextRef="c20220701to20220930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,856</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_eae6a0d26e474d6c82b49d12caa9698f" contextRef="c20221001to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">17,958</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_a6c13e7c147d459f933dc7900dfebcfc" contextRef="c20220101to20220331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2,566</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_01308e43f2cc4982aa40a1ddea5b5b47" contextRef="c20220401to20220630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,434</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_8826eb2dd0124916a64b89f29d9a7aff" contextRef="c20220701to20220930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,193</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_e204b7d5eadd4e08a3ac75a490471caa" contextRef="c20221001to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,219</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_1df4b078161f4fc88bbc803b0f155a02" contextRef="c20220101to20220331" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,348</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_7e1a9b89aa1a4897aaa114d6af475e27" contextRef="c20220401to20220630" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,376</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_71d504d5dfc84404b78b1acb40cc7c92" contextRef="c20220701to20220930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">528</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_97a1cbbbabbb47e087fd427a30d20d72" contextRef="c20221001to20221231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">260</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_7359155b42764e3f9efc364133291fd4" contextRef="c20220101to20220331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.44</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_d10290be01cb4e6681c78e7d6413baeb" contextRef="c20220401to20220630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.24</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_2c683af48b334ded995c4e099310dedb" contextRef="c20220701to20220930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.05</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_ef949dc73f2a490b81358b5357ae76d8" contextRef="c20221001to20221231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.03</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_10c558314f864c60998ac3078a380470" contextRef="c20220101to20220331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.44</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_c4a235aad3814da9b16129d80a96768d" contextRef="c20220401to20220630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.24</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_0683a8dcbc1344c88af45ec1381d85cd" contextRef="c20220701to20220930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.05</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_77bfa42f9ccc4a14a26157baf5b6a4e9" contextRef="c20221001to20221231" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.03</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021:</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_afcce32e616c41928f462a0205483c46" contextRef="c20210101to20210331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">8,301</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_ec07c5707b2247bd849468effc0d45fb" contextRef="c20210401to20210630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,325</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_b3d1c00323e14ce299ef976ef69f4948" contextRef="c20210701to20210930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">10,637</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" id="Fact_404d0328c2414936bfa29794fbecaac1" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">11,123</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_c700326a769b4ed1a22e14e4251afd4d" contextRef="c20210101to20210331" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,339</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_0dd1ed96d3f44d0184e6a77fb9f59464" contextRef="c20210401to20210630" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">3,432</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_1c19627d59384c2c925743196db91139" contextRef="c20210701to20210930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,305</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_8df139dbed2d45e3a248482087253015" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,306</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_81a027eed4ce46718c38a056843cf558" contextRef="c20210101to20210331" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,089</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_cc05b8a7d9dd4ca999edbe8a5dd76c1b" contextRef="c20210401to20210630" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,030</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_b02366cf3a7e4a90bc2c160ac6fc419f" contextRef="c20210701to20210930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">901</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_7c478f81af8343f487fc42b5eb90f257" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">823</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_16eabe6513b2452f8d959547d2297a40" contextRef="c20210101to20210331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.23</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_82c069006f5243c3b0ca630a61c44d26" contextRef="c20210401to20210630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.23</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_53a5ea18fe284552bd332aba79044615" contextRef="c20210701to20210930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.10</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_18dd1a5e355649199275b0e312aeb709" contextRef="c20211001to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 52%;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_fb4332f6e47043ab8e22c852d2c7e1b0" contextRef="c20210101to20210331" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.23</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_ccf1be2acf9f477e9a1358987b0755d7" contextRef="c20210401to20210630" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.23</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_852c8c51d4a443bf89bc0a4166eb37ad" contextRef="c20210701to20210930" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.09</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_303895ff661347a9ac6e471dda9f1a20" contextRef="c20211001to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div><ix:nonNumeric name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="Text_b88add478d2a44d38e0259d38450dcdf" contextRef="c20220101to20221231" escape="true" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd1">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">16.&#160; Change in accounting principle</div>
</ix:nonNumeric><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd1" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd2">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd2" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd3">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the FIFO costing methodology to the average costing methodology. We believe this methodology is preferable because it reflects a better estimate of inventory cost as we do not typically perform intensive manufacturing of our finished products, which are therefore better measured under average cost. In addition, our business is projected to include an increasing sales volume of software going forward, which better aligns with average costing. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. Tax effects are calculated at the Company&#8217;s marginal tax rate, or the tax impact of incremental income changes rather than the average tax rate applied to our total net loss before income taxes. The following financial statement line items for the periods presented were impacted by the change in accounting principle.</div>
</ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd3" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd4">
<div><br /></div>
</ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd4" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd5"><ix:nonNumeric name="us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="Text_f2dd8af0dfc44ddab8c8ad443e2938c7" contextRef="c20220101to20221231" escape="true" continuedAt="Text_e10204e80e4a4ea3822344686065aa621">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Balance Sheets for the periods presented are as follows:</div>
</ix:nonNumeric></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd5" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd6"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa621" continuedAt="Text_e10204e80e4a4ea3822344686065aa622">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd6" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd7"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa622" continuedAt="Text_e10204e80e4a4ea3822344686065aa623">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_a98426c6f7014f8cb5da9462561c1136" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,720</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:InventoryNet" id="Fact_24eea9adeff848edbd9d13bd1309b257" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">7,711</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:InventoryNet" id="Fact_0b645ad392064f28b656ffc221da94c6" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_962c1ef801e341b79f6538a8e9d9f539" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,141</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_e0d5a633b8e1407f922ac8c924ac402c" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">5,143</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxAssetsNet" id="Fact_0b3c630828b74a75abaa1bac9aa9470b" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">2</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_356c051491b74aa6ad0809119c4484ac" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,573</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_1e9ad105abdc415381945e1dfcaac60d" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,566</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_078fd16cb54f4be183006dc75ea84c74" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd7" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd8"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa623" continuedAt="Text_e10204e80e4a4ea3822344686065aa624">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd8" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd9"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa624" continuedAt="Text_e10204e80e4a4ea3822344686065aa625">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The ending balance in retained earnings as of December 31, 2020 was adjusted from $<ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_876086785f204aeb88f44fd35caeb1d5" contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,718</ix:nonFraction> to $<ix:nonFraction name="us-gaap:RetainedEarningsAccumulatedDeficit" id="Fact_b24a1d7603f442c5b62b79e589bfb76f" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,607</ix:nonFraction>.</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd9" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd10"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa625" continuedAt="Text_e10204e80e4a4ea3822344686065aa626">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd10" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd11"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa626" continuedAt="Text_e10204e80e4a4ea3822344686065aa627">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Operations for the periods presented are as follows:</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd11" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd12"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa627" continuedAt="Text_e10204e80e4a4ea3822344686065aa628">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd12" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd13"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa628" continuedAt="Text_e10204e80e4a4ea3822344686065aa629">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cost of sales</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_fe7e43133c8744a692181f4ff9979412" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,705</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_d960493393744461b1bd736410ecf59e" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">6,817</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_455d3dce2f8f40d0b4047f075b8dd0c0" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">112</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_db503044aa154a60a9005889f83489b7" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24,137</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_70decc94001b421b85e165089d8a9c15" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">24,004</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:CostOfRevenue" id="Fact_43d7af8f317242259ec08635461e74ab" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">133</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_0fc7750c96fb4a3683692b9eecf4f69d" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,418</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_131651e539f941309df5565ce2708a04" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">4,306</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:GrossProfit" id="Fact_7ab19ab53d214f079cebf38c72fdf3de" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">112</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_9211d5b838ef4802a8ee247ec4b81565" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,249</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_dbe041491145489fb57e1588017bc002" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,382</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:GrossProfit" id="Fact_7b58e8c01abb49c7ac9b89b313cf100f" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_495f6a6e0ca44ead9d8ed96a85e89e9c" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,485</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_a0704d98692843a08300ede5f1b83e32" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,597</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_aa2a3660f8814e739d0b0f1187cb8f3c" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">112</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_48e21322ea9b4a888a1a5785c2a0d6fe" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,510</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_2f3ac043444b4bb88496058798727483" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">9,377</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:OperatingIncomeLoss" id="Fact_65378a62264f4a169d447aece24697e8" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loss before income taxes</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_e63ff83dc18d4d2c8c121f08e5865af1" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,124</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_4ed92774355c4a9385070b77926a4a5f" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">1,236</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_994a41def38445b0a9449de56772ca03" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">112</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_a60f681a2b73488cb6e9baa1c145e4a7" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">6,216</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_b6644e7fa8df4ac28884df1eac75d4f3" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">6,083</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" id="Fact_4481c71d89c443bf83973fcb108b8a69" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_0dad31e4642f49a09c06a87ca67ac3ef" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">389</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_7e59e432e22a4557ab8cdde154035eb8" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">413</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_d36b15f7b02b421795057d37aa076e26" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">24</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_d44aa215aa80437fa4780204bc9de00f" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,071</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_27872cf98bb5448bb4e98f203f5c280c" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,042</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncomeTaxExpenseBenefit" id="Fact_27ee52d7896a4b50a57fccb1fe6c36a2" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">29</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_f872be17a2b34eb28bb17b896de9de73" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">735</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_48ccff3f3cf948cda1b4475edef8478c" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">823</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_1bc339335ed241bbbb5ea30aad02c150" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">88</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_7c191975e13a4a7dbbd9d2dde1a19d36" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,145</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_0dbf5f59442b410ca4370a8510d48013" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e990b4c692ce49aa8e225609d0970ee2" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_ff57ec9029e145578f9b978841524ff9" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.07</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_181402252e0d416db0f7564e477cf29c" contextRef="c20211001to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_17b0ec7d32cf41c89f61607313b9d946" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_947401d74a1848b6a4efad6feca5aeb3" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.45</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_59e3f6cbfbf44d20a64ce403bd7c8cfb" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareBasic" id="Fact_37829d5560ae4e178c638359eaa1177c" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.02</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_37eb3b73cba64d899946019733c80bf8" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.07</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_529d007e2ad246e9881c95cd3432f23d" contextRef="c20211001to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.08</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_9e0773088a8145609037d2fc110a6432" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.01</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_efd1a61965424e67b7043bae83a9b468" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.45</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_1698aea13a5a44c09047e94bb7d93d19" contextRef="c20210101to20211231" unitRef="U003" decimals="2" sign="-" scale="0" format="ixt:num-dot-decimal">0.43</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:EarningsPerShareDiluted" id="Fact_5b7306477f0d4bccb52145f33d17ce3d" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U003" decimals="2" scale="0" format="ixt:num-dot-decimal">0.02</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares used in per-share calculation:</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_2e94274e3fd744f58adfbf358440d626" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,848</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_9b07c4d59f4d4c61a3f4ec65bcb62915" contextRef="c20211001to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,848</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_091ae9ddb04c49b5bfb3f9680546fadd" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" id="Fact_812450c7baec4a5fa9209ca83020af03" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_a7737e613f6b40c7974f9ec691054bdb" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,848</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_4ec3a6b0c12b4b20a1f5dd7c950db2fa" contextRef="c20211001to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,848</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_a455e55942304541b117053c1feaff79" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" id="Fact_ebe3b91666ff46538357e57a230f2d49" contextRef="c20210101to20211231" unitRef="U002" decimals="-3" scale="3" format="ixt:num-dot-decimal">9,298</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd13" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd14"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa629" continuedAt="Text_e10204e80e4a4ea3822344686065aa6210">
<div><br /></div>
</ix:continuation></ix:continuation></div>
<div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-22</div>
</div>
<div style="page-break-after: always;" class="BRPFPageBreak"><hr style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;" /></div>
<div class="BRPFPageHeader"></div>
</div>
<div><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd14" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd15"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6210" continuedAt="Text_e10204e80e4a4ea3822344686065aa6211">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Comprehensive Loss for the periods presented are as follows:</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd15" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd16"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6211" continuedAt="Text_e10204e80e4a4ea3822344686065aa6212">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd16" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd17"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6212" continuedAt="Text_e10204e80e4a4ea3822344686065aa6213">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_fc528739655046d5ba96cefc5c9ab8d2" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">735</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_e38faf9bd2374089b8c0bdf5d2faba4a" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">823</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_606509284f6743a49a9d547b898570d3" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">88</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d5c90c5335294020b872d722c6d74ab3" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,145</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_0976e85f236a4a038254911caa4a5c04" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_9030c2a6b06d4125bc66786fee418f7c" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Comprehensive loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_c8ef71d0699a43b0a1812f88207c4de4" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">662</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_8d9346588c21438ea5db5412832ad1e9" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">750</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_a62e8de90b6a4565a9771e05bbce4afc" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">88</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_e0e63e1a0714464291f5f72a1bcd8e2b" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,964</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_d1a83a5f7d9b441d935959f60f1720a8" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,860</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:ComprehensiveIncomeNetOfTax" id="Fact_c59c50826afc43a1b6291bee1e35f376" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd17" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd18"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6213" continuedAt="Text_e10204e80e4a4ea3822344686065aa6214">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd18" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd19"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6214" continuedAt="Text_e10204e80e4a4ea3822344686065aa6215">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Cash Flows for the periods presented are as follows:</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd19" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd20"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6215" continuedAt="Text_e10204e80e4a4ea3822344686065aa6216">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd20" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd21"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6216" continuedAt="Text_e10204e80e4a4ea3822344686065aa6217">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_2e3243aa49dc4081ae45592f3d8ae560" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,145</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d6bebf0bdb914022a228834590b2b06a" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d055dceb2d6c443496fa7e0436505980" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income tax benefit</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_e4c8be5d7f46480a8f78441cd35a3302" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,150</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_d461081f59784f48a0c109dfd9565622" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">2,121</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:DeferredIncomeTaxExpenseBenefit" id="Fact_83fbaff47982426a86933f4e8feb2713" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">29</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_3c83414643df4192a0e0bfd47b6afc01" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,573</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_68ab0832b800440b96150792d23a1ca7" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">3,440</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:IncreaseDecreaseInInventories" id="Fact_335cea155c3448d08841542b1c016e40" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">133</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd21" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd22"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6217" continuedAt="Text_e10204e80e4a4ea3822344686065aa6218">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd22" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd23"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6218" continuedAt="Text_e10204e80e4a4ea3822344686065aa6219">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Changes in Shareholders&#8217; Equity for the periods presented are as follows:</div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd23" continuedAt="Text_7bba2ecd21f34c6dbe7b871c081a32fd24"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6219" continuedAt="Text_e10204e80e4a4ea3822344686065aa6220">
<div><br /></div>
</ix:continuation></ix:continuation><ix:continuation id="Text_7bba2ecd21f34c6dbe7b871c081a32fd24"><ix:continuation id="Text_e10204e80e4a4ea3822344686065aa6220">
<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;">&#160;</td>
    <td colspan="10" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; padding-bottom: 2px;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
    <td colspan="2" valign="bottom" style="vertical-align: bottom; border-bottom: #000000 solid 2px;"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity beginning balance</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_7e971af55a624b85b168a60b41ae3455" contextRef="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,280</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1459875aad684703af3baf3e2edb88c3" contextRef="c20210930" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">39,361</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_a70d76ef6a494a088dd07b9c6df301dd" contextRef="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">81</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_36e1c803acd74ac3a93521281d3b9871" contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,236</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_fff6b2e38ca14c2ea4a5e6356e1c6637" contextRef="c20201231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">30,125</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_91b2b439daea4d52a6b09ad4af2b19c8" contextRef="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">111</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; white-space: nowrap;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - beginning of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_03809af80aa94ab5967f04fee042406a" contextRef="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,308</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_463863a89e84409d89cb302afb5ef458" contextRef="c20210930_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">16,389</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_5b29cb160bf84201ba03d37da6a09fc0" contextRef="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">81</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_71f6302547344a80901cc4651ba2447c" contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,718</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_175972af488f4536b472cb891378dbf9" contextRef="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">19,607</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_b3336d58fbd744329c5aac099376d827" contextRef="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">111</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_31eae3c7b08841f0ac85877e7a0604fc" contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">735</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_df48ba826387440daff07ad65a54853d" contextRef="c20211001to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">823</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_ee7fdf65597e430da327cafa2b8530c3" contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">88</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_389b962f136e443ba0c22129c06b4caf" contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,145</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_d1eaafe3cd3f491486880acf65f3491d" contextRef="c20210101to20211231" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">4,041</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:NetIncomeLoss" id="Fact_bcce791fab954030855340614ca665f3" contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">104</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - end of period</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_bbec45a38efd426fb46242ff2079a8a0" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,573</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_254b1f824b6c4ef6b232a3c9ace04a63" contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,566</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_ff6dff52d3a84758acf20ae7ab444e5f" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_4d8fe0f858e2447bbef3ca3e31932c1a" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,573</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_89b11ce5c14f4e21a0d00285d530a266" contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">15,566</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_7dff33920fc54a15a94cc75ae669762e" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td valign="bottom" style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity ending balance</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_591f064dfb624a3ba0bc7d66cc04d651" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,991</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_3e0db8217c644977ba9a8696b215481a" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,984</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_c743799ebfe2492e938d16c9f8d30773" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7</ix:nonFraction></div></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_1d7727705b934b368e2100c4873b61b2" contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,991</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_617021ef77db40f4b28703f9f5115e03" contextRef="c20211231" unitRef="U001" decimals="-3" scale="3" format="ixt:num-dot-decimal">38,984</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;">&#160;</td>
    <td colspan="1" valign="bottom" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(<ix:nonFraction name="us-gaap:StockholdersEquity" id="Fact_4d93d176155b4ff695063e556a04b819" contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" unitRef="U001" decimals="-3" scale="3" sign="-" format="ixt:num-dot-decimal">7</ix:nonFraction></div></td>
    <td colspan="1" valign="bottom" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>
</ix:continuation></ix:continuation></div>
<div style="text-align: left;"><br /></div>
<div><ix:nonNumeric name="us-gaap:SubsequentEventsTextBlock" id="Text_7a0238212f9f45698df40ad2fc23f0c5" contextRef="c20220101to20221231" escape="true" continuedAt="Text_abc70880bbb84a0bbc75a651b44a4ba61">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">17. Subsequent events</div>
</ix:nonNumeric><ix:continuation id="Text_abc70880bbb84a0bbc75a651b44a4ba61" continuedAt="Text_abc70880bbb84a0bbc75a651b44a4ba62">
<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br /></div>
</ix:continuation><ix:continuation id="Text_abc70880bbb84a0bbc75a651b44a4ba62">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the first quarter of 2023, we collected the $<ix:nonFraction name="tact:ProceedsFromEmployeeRetentionCredit" id="Fact_398163e336034e9085f2b3ef3a8a4c84" contextRef="c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember" unitRef="U001" decimals="-5" scale="6" format="ixt:num-dot-decimal">1.5</ix:nonFraction> million employee retention credit receivable from the U.S. Government. The Company has evaluated all other events or transactions that occurred up to the date the consolidated financial statements were available to issue. Based upon this review, the Company did not identify any other subsequent events that would have required adjustment or disclosure in the consolidated financial statements.</div>
</ix:continuation></div>
<div><br /></div>
<div class="BRPFPageFooter">
<div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 8pt;">F-23</div>
</div>
</body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-3.2
<SEQUENCE>2
<FILENAME>ex3_2.htm
<DESCRIPTION>AMENDED AND RESTATED BY-LAWS OF TRANSACT TECHNOLOGIES INCORPORATED
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
  <!--PROfilePageNumberReset%Num%1%%%-->
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;">
    <div>
      <div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;"><a name="z_Hlk130149912"></a>Exhibit 3.2</div>
    </div>
    <div>
      <div><br>
      </div>
      <div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">AMENDED AND RESTATED</div>
      <div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">BY-LAWS</div>
      <div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">OF</div>
      <div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">TRANSACT TECHNOLOGIES INCORPORATED</div>
      <div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">(as of May 31, 2022)</div>
    </div>
    <div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE I<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>OFFICES</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 1.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Registered Office.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The registered office shall be in the City of Wilmington, County of New Castle, State of Delaware.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 1.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Other Offices</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">.&#160; The corporation may also have offices at such other places both within and without the State of Delaware as the board of directors may from time to time determine or the business of the
          corporation may require.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE II<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>MEETINGS OF STOCKHOLDERS</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Meetings of Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; All meetings of the stockholders shall be held in Wallingford, Connecticut, at such place as may be fixed from time to time by the board of directors, or at such other place
          either within or without the State of Delaware as shall be designated from time to time by the board of directors and stated in the notice of the meeting or in a duly executed waiver of notice thereof.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Annual Meetings of Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Annual meetings of stockholders shall be held on the first Thursday in May, unless such day is a legal holiday, (in which case the meeting will be held on the next secular
          day following), or on such other date and at such other time as shall be designated from time to time by the board of directors and stated in the notice of the meeting, at which they shall elect by a plurality vote a board of directors, and
          transact such other business as may properly be brought before the meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.03</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Notice of Annual Meeting.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Written notice of the annual meeting stating the place, date and hour of the meeting shall be given to each stockholder entitled to vote at such meeting not less than ten
          (10) nor more than sixty (60) days before the date of the meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.04</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">List of Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The officer who has charge of the stock ledger of the corporation shall prepare and make, at least ten (10) days before every meeting of stockholders, a complete list of the
          stockholders entitled to vote at the meeting, arranged in alphabetical order, and showing the address of each stockholder and the number of shares registered in the name of each stockholder.&#160; Such list shall be open to the examination of any
          stockholder, for any purpose germane to the meeting at least ten days prior to the meeting in the manner required by Section 219 of the General Corporation Law of the State of Delaware.&#160; The list shall also be produced and kept at the time and
          place of the meeting during the whole time thereof, and may be inspected by any stockholder who is present.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">1</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.05</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Special Meetings of Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Special meetings of the stockholders for any purpose or purposes, unless otherwise prescribed by statute may be called by the Chair of the Board and shall be called by the
          Chair of the Board or Secretary at the request in writing of the board of directors, or at the request in writing (and not by electronic transmission) signed by stockholders owning 50% in amount of the entire capital stock of the corporation
          issued and outstanding and entitled to vote thereon, delivered by registered mail or hand delivery to the Secretary of the corporation. Each such request shall state the purpose or purposes of the proposed meeting (and the nominees for director
          election, as applicable) and shall set forth all the information that would be required by Section 2.12 of these By-Laws if the proposals (and the nominees for director election, as applicable) were submitted for action at an annual meeting of
          stockholders.&#160; Any stockholder may revoke a request by revocation in writing (and not by electronic transmission) delivered by registered mail or hand delivery to the secretary of the corporation at any time prior to the stockholder-requested
          special meeting.&#160; The board of directors shall fix the date, time and place of all special meetings of stockholders. The board of directors may present business to be transacted at any special meeting called at the request of stockholders, and
          may fix a record date to determine the stockholders entitled to deliver requests for a special meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.06</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Notice of Special Meetings of Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Written notice of a special meeting stating the place, date and hour of the meeting and the purpose or purposes for which the meeting is called, shall be given not less than
          ten nor more than sixty days before the date of the meeting, to each stockholder entitled to vote at such meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.07</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Quorum.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The holders of a majority of the stock issued and outstanding and entitled to vote thereat, present in person or represented by proxy, shall constitute a quorum at all meetings of the stockholder
          for the transaction of business except as otherwise provided by statute or by the Certificate of Incorporation. If, however, such quorum shall not be present or represented at any meeting of the stockholders, the chair of the meeting or the
          stockholders entitled to vote thereat, present in person or represented by proxy, shall have the power to adjourn the meeting from time to time, without notice other than announcement at the meeting, until a quorum shall be present or
          represented. At such adjourned meeting at which a quorum shall be present or represented any business may be transacted which might have been transacted at the meeting as originally notified if the adjournment is for more than thirty days, or if
          after the adjournment a new record date is fixed for the adjourned meeting, a notice of the adjourned meeting shall be given to each stockholder of record entitled to vote at the meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.08</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Majority Voting.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; When a quorum is present at any meeting, the affirmative vote of the holders of a majority of the voting power of the stock present in person or represented by proxy and entitled to vote on
          the subject matter shall decide any question brought before such meeting, unless the question is one upon which by express provision of the statutes or of the Certificate of Incorporation or these By-Laws, a different vote is required in which
          case such express provision shall govern and control the decision of such question.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.09</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Voting Rights.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Unless otherwise provided in the Certificate of Incorporation each stockholder shall at every meeting of the stockholders be entitled to one vote in person or by proxy for each share of the
          capital stock having voting power held by such stockholder, but no proxy shall be voted on after three years from its date, unless allowed by the laws of the State of Delaware or unless the proxy provides for a longer period.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.10</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Conduct of Meeting.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The Chair of the Board, or any other person designated by the board of directors or the Chair of the Board, shall act as chair of and preside at any meeting of the
          stockholders. Each of the chair of the meeting and the board of directors shall have the authority to adopt and enforce rules for conducting the meeting, including to determine when the polls will open and close on business, the order of
          conducting business and rules requiring advance notice to the corporation of stockholder attendance.&#160; The chair of the meeting may adjourn or recess any meeting of stockholders.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">2</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.11</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Submission of Information by Director
          Nominees.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; To be eligible for election or re-election as a director of the corporation, a person must deliver in writing to the Secretary at the principal
          executive offices of the corporation (by registered mail or hand delivery) the following:</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(1)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">a statement that such person is not (and will not become) a party to any agreement or
          understanding with any person other than the corporation with respect to any direct or indirect compensation, reimbursement or indemnification in connection with service or action as a nominee or as a director that has not been disclosed to the
          corporation;</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(2)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">a statement that such person, if elected or re-elected as a director, intends to comply with all
          policies, principles and guidelines of the corporation with respect to codes of conduct, corporate governance, conflict of interest, confidentiality, stock ownership and trading applicable to directors of the corporation, which will be promptly
          provided following a request therefor;</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(3)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">all completed and signed questionnaires requested by the corporation (including those
          questionnaires required of the corporation&#8217;s current or prospective directors and any other questionnaire the corporation determines is necessary or advisable to assess whether a nominee will satisfy any qualifications or requirements imposed by
          the Certificate of Incorporation, these By-Laws, the corporation&#8217;s corporate governance policies or any law, rule, regulation or listing requirement that may be applicable to the corporation), which will be promptly provided following a request
          therefor; and</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(4)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">for each prospective director, such person&#8217;s written consent authorizing the corporation to run a
          background check in accordance with the corporation&#8217;s policy for prospective directors and such person&#8217;s agreement to provide any information requested by the corporation that is necessary to run such background check.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: left; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 2.12</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Notice of Stockholder Business and
          Nominations.</font></div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(1)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">Nominations of persons for election to the board of directors and the proposal of business to be
          transacted by the stockholders may be made at an annual meeting of stockholders (a) pursuant to the corporation&#8217;s proxy materials with respect to such meeting, (b) by or at the direction of the board of directors, or (c) by any stockholder of
          record of the corporation (the &#8220;Record Stockholder&#8221;) at the time of the giving of the notice required in the following paragraph, who is entitled to vote at the meeting and who has complied with the notice procedures set forth in this section.&#160;
          For the avoidance of doubt, the foregoing clause (c) shall be the exclusive means for a stockholder to make nominations or propose business (other than business included in the corporation&#8217;s proxy materials pursuant to Rule 14a-8 under the
          Securities Exchange Act of 1934, as amended (such act, and the rules and regulations promulgated thereunder, the &#8220;Exchange Act&#8221;)) at an annual meeting of stockholders.</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(2)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">For nominations or business to be properly brought before an annual meeting by a Record
          Stockholder pursuant to clause (c) of the foregoing paragraph, (a) the Record Stockholder must have given timely notice thereof in writing (and not by electronic transmission) to the Secretary of the corporation, (b) any such business must be a
          proper matter for stockholder action under Delaware law and (c) the Record Stockholder and the beneficial owner, if any, on whose behalf any such proposal or nomination is made, must have acted in accordance with the representations set forth in
          the Solicitation Statement required by Section 2.12(3)(c)(iv) of these By-Laws.&#160; To be timely, a Record Stockholder&#8217;s notice shall be received by the Secretary at the principal executive offices of the corporation not less than 60 or more than 90
          days prior to the one-year anniversary of the date on which the corporation first mailed its proxy materials for the preceding year&#8217;s annual meeting of stockholders; provided, however, that, subject to the last sentence of this Section 2.12(2),
          if the meeting is convened more than 30 days prior to or delayed by more than 30 days after the anniversary of the preceding year&#8217;s annual meeting, or if no annual meeting was held in the preceding year, notice by the Record Stockholder to be
          timely must be so received not later than the close of business on the later of (i) the 90th day before such annual meeting or (ii) the 10th day following the day on which public announcement of the date of such meeting is first made.&#160;
          Notwithstanding anything in the preceding sentence to the contrary, in the event that the number of directors to be elected to the board of directors is increased and there has been no public announcement naming all of the nominees for director
          or indicating the increase in the size of the board of directors made by the corporation at least 10 days before the last day a Record Stockholder may deliver a notice of nomination in accordance with the preceding sentence, a Record
          Stockholder&#8217;s notice required by this bylaw shall also be considered timely, but only with respect to nominees for any new positions created by such increase, if it shall be received by the Secretary at the principal executive offices of the
          corporation not later than the close of business on the 10th day following the day on which such public announcement is first made by the corporation.&#160; In no event shall an adjournment, or postponement of an annual meeting for which notice has
          been given, commence a new time period for the giving of a Record Stockholder&#8217;s notice.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">3</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(3)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">Such Record Stockholder&#8217;s notice shall set forth:</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">a.</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">if such notice pertains to the nomination of directors, as to each person whom the Record
          Stockholder proposes to nominate for election or reelection as a director, all information relating to such person as would be required to be disclosed in solicitations of proxies for the election of such nominees as directors pursuant to
          Regulation 14A under the Exchange Act, such person&#8217;s written consent to serve as a director for the full term if elected, and all information required to be submitted under Section 2.11 of these By-Laws;</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">b.</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">as to any business that the Record Stockholder proposes to bring before the meeting, a brief
          description of such business, the reasons for conducting such business at the meeting and any material interest in such business of such Record Stockholder and the beneficial owner, if any, on whose behalf the proposal is made; and</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">c.</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">as to (1) the Record Stockholder giving the notice and (2) the beneficial owner, if any, on whose
          behalf the nomination or proposal is made (each, a &#8220;party&#8221;):</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(i)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">the name and address of each such party;</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(ii)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(A) the class, series, and number of shares of the corporation that are owned, directly or
          indirectly, beneficially and of record by each such party, (B) any option, warrant, convertible security, stock appreciation right, or similar right with an exercise or conversion privilege or a settlement payment or mechanism at a price related
          to any class or series of shares of the corporation or with a value derived in whole or in part from the value of any class or series of shares of the corporation, whether or not such instrument or right shall be subject to settlement in the
          underlying class or series of capital stock of the corporation or otherwise (a &#8220;Derivative Instrument&#8221;) directly or indirectly owned beneficially by each such party, and any other direct or indirect opportunity to profit or share in any profit
          derived from any increase or decrease in the value of shares of the corporation, (C) any proxy, contract, arrangement, understanding, or relationship pursuant to which either party has a right to vote, directly or indirectly, any shares of any
          security of the corporation, (D) any short interest in any security of the corporation held by each such party (for purposes of this Section 2.12(3), a person shall be deemed to have a short interest in a security if such person directly or
          indirectly, through any contract, arrangement, understanding, relationship or otherwise, has the opportunity to profit or share in any profit derived from any decrease in the value of the subject security), (E) any rights to dividends on the
          shares of the corporation owned beneficially directly or indirectly by each such party that are separated or separable from the underlying shares of the corporation, (F) any proportionate interest in shares of the corporation or Derivative
          Instruments held, directly or indirectly, by a general or limited partnership in which either party is a general partner or, directly or indirectly, beneficially owns an interest in a general partner and (G) any performance-related fees (other
          than an asset-based fee) to which each such party is directly or indirectly entitled based on any increase or decrease in the value of shares of the corporation or Derivative Instruments, if any, as of the date of such notice, including without
          limitation any such interests held by members of each such party&#8217;s immediate family sharing the same household (which information set forth in this paragraph shall be supplemented by such stockholder or such beneficial owner, as the case may be,
          not later than 10 days after the record date for determining the stockholders entitled to vote at the meeting; provided, that if such date is after the date of the meeting, not later than the day prior to the meeting);</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(iii)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">any other information relating to each such party that would be required to be disclosed in a
          proxy statement or other filings required to be made in connection with solicitations of proxies for, as applicable, the proposal and/or the election of directors in a contested election pursuant to Section 14 of the Exchange Act; and</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">4</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(iv)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">a statement whether or not each such party will deliver a proxy statement and form of proxy to
          holders of at least a majority of the voting power of the common stock outstanding and/or intends otherwise to solicit proxies from stockholders in support of such proposal or nomination (such statement, a &#8220;Solicitation Statement&#8221;).</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(4)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">A person shall not be eligible for election or re-election as a director at an annual meeting of
          stockholders, and no other business shall be conducted at an annual meeting of stockholders, in each case, except in accordance with the procedures set forth in this section.&#160; The chair of the meeting shall have the power and authority to
          determine whether a nomination or any business proposed to be brought before the meeting has been made in accordance with the procedures set forth in these By-Laws.</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(5)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">Nominations of persons for election to the board of directors may be made at a special meeting of
          stockholders at which directors are to be elected pursuant to the corporation&#8217;s notice of meeting:&#160; (i) by or at the direction of the board of directors; or (ii) by any stockholder of the corporation who is a Record Stockholder at the time the
          notice provided for in this Section 2.12(5) is delivered to the secretary of the corporation, who is entitled to vote at the meeting and who delivers notice thereof in writing (and not by electronic transmission) setting forth the information
          required by Section 2.12(3) above and provides the additional information required by Section 2.11 above.&#160; In the event the corporation calls a special meeting of stockholders (other than a stockholder-requested special meeting) for the purpose
          of electing one or more directors to the board of directors, any Record Stockholder entitled to vote in such election of directors may nominate a person or persons (as the case may be) for election to such position(s) as specified in the
          corporation&#8217;s notice of meeting, if the notice required by this Section 2.12(5) shall be received by the Secretary at the principal executive offices of the corporation not later than the close of business on the later of the 90th day prior to
          such special meeting or the 10th day following the day on which public announcement is first made of the date of the special meeting and of the nominees proposed by the board of directors to be elected at such meeting.&#160; In no event shall an
          adjournment, or postponement of a special meeting for which notice has been given, commence a new time period for the giving of a stockholder of record&#8217;s notice.&#160; Notwithstanding any other provision of these By-Laws, in the case of a
          stockholder-requested special meeting, no stockholder may nominate a person for election to the board of directors or propose any other business to be considered at the meeting, except for the nominations and/or business set forth in the written
          request(s) delivered for such special meeting pursuant to Section 2.05.</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(6)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">For purposes of these By-Laws, &#8220;public announcement&#8221; shall mean disclosure in a press release
          reported by the Dow Jones News Service, Associated Press or a comparable national news service or in a document publicly filed by the corporation with the Securities and Exchange Commission pursuant to Section 13, 14 or 15(d) of the Exchange Act.</font></div>
      <div style="text-align: justify; text-indent: 72pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">(7)</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">Notwithstanding the foregoing provisions of this Section 2.12, a Record Stockholder shall also
          comply with all applicable requirements of the Exchange Act with respect to matters set forth in this Section 2.12.&#160; Nothing in this Section 2.12 shall be deemed to affect any rights of stockholders to request inclusion of proposals in the
          corporation&#8217;s proxy statement pursuant to Rule 14a-8 under the Exchange Act.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE III<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>DIRECTORS</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Election of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The number of directors which shall constitute the whole board shall be determined by resolution adopted by the board of directors. The directors shall be elected at the
          annual meeting of the stockholders, except as provided in Section 3.02 of this Article.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">5</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Vacancies on Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Except as otherwise required by law, vacancies and newly created directorships resulting from any increase in the authorized number of directors may be filled by the
          affirmative vote of a majority of the directors then in office, though less than a quorum, or by a sole remaining director. Any director appointed in accordance with the preceding sentence shall hold office (a) if appointed prior to the third
          annual meeting of stockholders following the annual meeting of stockholders in 2022, for a term that shall coincide with the remaining term of that class to which such director has been elected expires or (b) if appointed at or following the
          third annual meeting of stockholders following the annual meeting of stockholders in 2022, for a term expiring at the next annual meeting of stockholders, and in each case shall serve until such director&#8217;s successor has been duly elected and
          qualified, subject, however, to prior death, resignation, retirement, disqualification or removal from office. No decrease in the number of directors constituting the board shall shorten the term of any incumbent director. If at any time, by
          reason of death or resignation or other cause, the corporation should have no directors in office, then any officer or any stockholder or an executor, administrator, trustee or guardian of a stockholder, or other fiduciary entrusted with like
          responsibility for the person or estate of a stockholder, may call a special meeting of stockholders in accordance with the provisions of the Certificate of Incorporation or these By-Laws, or may apply to the Court of Chancery for a decree
          summarily ordering an election as provided by law.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.03</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Powers of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The business of the corporation shall be managed by its board of directors which may exercise all such powers of the corporation and do all such lawful acts and things as
          are not by statute or by the Certificate of Incorporation directed or required to be exercised or done by the stockholders.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.04</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Meetings of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The board of directors of the corporation may hold meetings, both regular and special, either within or without the State of Delaware.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.05</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">First Meeting of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The first meeting of each newly elected board of directors shall be held at such time and place as shall be fixed by the vote of the stockholders or incorporators and no
          notice of such meeting shall be necessary to the newly elected directors in order legally to constitute the meeting, provided a quorum shall be present. In the event of the failure of the stockholders or the incorporators to fix the time or place
          of such first meeting of the newly elected board of directors, or in the event such meeting is not held at the time and place so fixed by the stockholders or the incorporators, the meeting may be held at such time and place as shall be specified
          in a notice given as hereinafter provided for special meetings of the board of directors, or as shall be specified in a written waiver signed by all of the directors.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.06</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Regular Meetings of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Regular meetings of the board of directors may be held without notice at such time and at such place as shall from time to time be determined by the board.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.07</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Special Meetings of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Special meetings of the board of directors may be called by the Chair of the Board, the Chief Executive Officer or the President on 24 hours&#8217; notice to each director by hand
          delivery, electronic transmission or telephone, or on five (5) days&#8217; notice if such notice is delivered by mail; special meetings shall be called by the Chair of the Board, Chief Executive Officer, President or Secretary in like manner and on
          like notice on the written request of two directors unless the board consists of only one director in which case special meetings shall be called by the Chief Executive Officer, President or Secretary in like manner and in like notice on the
          written request of the sole director.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.08</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Quorum.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; At all meetings of the board, a majority of the total number of directors shall constitute a quorum for the transaction of business and the act of a majority of the directors present at any meeting
          at which there is a quorum shall be the act of the board of directors, except as may be otherwise specifically provided by statute or by the Certificate of Incorporation. If a quorum shall not be present at any meeting of the board of directors
          the directors present thereat may adjourn the meeting from time to time, without notice other than announcement at the meeting, until a quorum shall be present.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">6</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.09</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Director Consents.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Any action required or permitted to be taken at any meeting of the board of directors or of any committee thereof may be taken without a meeting, if all members of the board
          or committee, as the case may be, consent thereto in the manner permitted by Section 141(f) of the General Corporation Law of the State of Delaware.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.10</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Telephone Meetings of Board of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Members of the board of directors, or any committee designated by the board of directors, may participate in a meeting of the board of directors, or any committee, by means
          of conference telephone or similar communications equipment by means of which all persons participating in the meeting can hear each other, and such participation in a meeting shall constitute presence in person at the meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.11</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Committee of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The board of directors may, by resolution passed by a majority of the whole board, designate one or more committees, each committee to consist of one or more of the
          directors of the corporation. The board may designate one or more directors as alternate members of any committee, who may replace any absent or disqualified member at any meeting of the committee. In the absence or disqualification of a member
          of a committee, the member or members thereof present at any meeting and not disqualified from voting, whether or not such member or members constitute a quorum, may unanimously appoint another member of the board of directors to act at the
          meeting in the place of any such absent or disqualified member. Any such committee, to the extent provided in the resolution of the board of directors, shall have and may exercise all the powers and authority of the board of directors in the
          management of the business and affairs of the corporation, and may authorize the seal of the corporation to be affixed to all papers which may require it, to the fullest extent permitted by Section 141(c)(2) of the General Corporation Law of the
          State of Delaware.&#160; Such committee or committees shall have such name or names as may be determined from time to time by resolution adopted by the board of directors.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.12</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Committee Minutes.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Each committee shall keep regular minutes of its meetings and report the same to the board of directors when required.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.13</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Compensation of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Unless otherwise restricted by the Certificate of Incorporation, the board of directors shall have the authority to fix the compensation of directors. The directors may be
          paid their expenses, if any, of attendance at each meeting of the board of directors and may be paid a fixed sum for attendance at each meeting of the board of directors or a stated salary as directed. No such payment shall preclude any director
          from serving the corporation in any other capacity and receiving compensation therefor. Members of special or standing committees may be allowed like compensation for attending committee meetings.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.14</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Removal of Directors.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Unless otherwise required by the Certificate of Incorporation or by statute or law, prior to the third annual meeting of stockholders following the annual meeting of
          stockholders in 2022, directors may be removed from office only for cause. From and including the third annual meeting of stockholders following the annual meeting of stockholders in 2022, directors may be removed from office at any time with or
          without cause.&#160; Directors may only be removed with or without cause by the affirmative vote of the holders of a majority of the voting power of all shares of the corporation entitled to vote generally in the election of directors, voting together
          as a single class.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 3.15</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Chair of the Board.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The Chair of the Board, if there is one, shall be elected annually by and from the board of directors and shall preside at all meetings of the directors at which the Chair
          of the Board shall be present. In the absence of the Chair of the Board, any other director designated by the directors present at the meeting of the board of directors shall act as chair of and preside at such meeting.&#160; A director&#8217;s service as
          Chair of the Board shall not by itself constitute such director as an officer or employee of the corporation, except as, and solely to the extent, required by applicable law.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">7</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE IV<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>NOTICES</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 4.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Notices.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Whenever, under the provisions of the statutes or of the Certificate of Incorporation or of these By-Laws, notice is required to be given to any director or stockholder, it shall not be construed
          to require personal notice, but such notice may be given in writing, by mail, addressed to such director or stockholder, at such director or stockholder&#8217;s address as it appears on the records of the corporation, with postage thereon prepaid, and
          such notice shall be deemed to be given at the time when the same shall be deposited in the United States mail. Attendance of a person at a meeting shall constitute a waiver of notice of such meeting, except when the person attends a meeting for
          the express purpose of objecting, at the beginning of the meeting, to the transaction of any business because the meeting is not lawfully called or convened.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 4.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Waiver of Notice.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Whenever a notice is required to be given under the provisions of the statutes or of the Certificate of Incorporation or of these By-Laws, a waiver thereof in writing,
          signed by the person or persons entitled to said notice, whether before or after the time stated therein, shall be deemed equivalent thereto.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE V<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>OFFICERS</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Necessary Officers.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The officers of the corporation shall be chosen by the board of directors, having the titles and exercising the duties (as prescribed by the By-Laws or by the Board) of
          Chief Executive Officer, President, Vice President, Secretary, and Treasurer. The board of directors may also choose one or more Vice-Presidents, Assistant Secretaries, and Assistant Treasurers. Any number of offices may be held by the same
          person. No officer need be a stockholder.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Election of Officers.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The board of directors at its first meeting after each annual meeting of stockholders shall choose a Chair of the Board, a Chief Executive Officer, a President, a Secretary
          and a Treasurer.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.03</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Other Officers.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The board of directors may appoint such other officers and agents as it shall deem necessary who shall hold their offices for such terms and shall exercise such powers and perform such duties
          as shall be determined from time to time by the board.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.04</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Officers, Salaries.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The salaries of all officers and agents of the corporation shall be fixed by the board of directors.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.05</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Term of Office.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The officers of the corporation shall hold office until their successors are chosen and qualify. Any officer elected or appointed by the board of directors may be removed at any time by the
          affirmative vote of a majority of the board of directors. Any vacancy occurring in any office of the corporation shall be filled by the board of directors.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.06</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">[Reserved]</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.07</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Chief Executive Officer.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The Chief Executive Officer shall be the principal executive officer of the corporation. It shall be the Chief Executive Officer&#8217;s duty, and the Chief Executive Officer
          shall have the power, to see that all orders and resolutions of the board of directors are carried into effect. The Chief Executive Officer, as soon as reasonably possible after the close of each fiscal year, shall submit to the board of
          directors a report of the operations of the corporation for such year and a statement of its affairs, and shall from time to time report to the board of directors all matters within the Chief Executive Officer&#8217;s knowledge which the interests of
          the corporation may require to be brought to its notice. The Chief Executive Officer shall perform such duties and have such powers additional to the foregoing as the board of directors shall designate.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">8</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.08</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">President.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; In the absence or disability of the Chief Executive Officer, the Chief Executive Officer&#8217;s powers and duties shall be performed by the President.&#160; The President shall have such other powers as set
          forth in these By-Laws and perform such other duties as the Chair of the Board, the Chief Executive Officer or the board of directors shall from time to time designate.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.09</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Vice Presidents.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; In the absence or disability of the President, the President&#8217;s powers and duties shall be performed by the Vice President, if only one, or, if more than one, by the one designated for the
          purpose by the board of directors. Each Vice President shall have such other powers and perform such other duties as the board of directors shall from time to time designate.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.10</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Treasurer.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The Treasurer shall keep full and accurate accounts of receipts and disbursements in books belonging to the corporation and shall deposit all moneys and other valuable effects in the name and to
          the credit of the corporation in such depositories as shall be designated by the board of directors or in the absence of such designation in such depositories as the Treasurer shall from time to time deem proper. The Treasurer shall disburse the
          funds of the corporation as shall be ordered by the board of directors, taking proper vouchers for such disbursements. The Treasurer shall promptly render to the Chief Executive Officer and to the board of directors such statements of
          transactions and accounts as the Chief Executive Officer and board of directors respectively may from time to time require. The Treasurer shall perform such duties and have such powers additional to the foregoing as the board of directors may
          designate.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.11</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Assistant Treasurers.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; In the absence of disability of the Treasurer, the Treasurer&#8217;s powers and duties shall be performed by the Assistant Treasurer, if one be elected, or, if more than one, by
          the one designated for the purpose by the board of directors. Each Assistant Treasurer shall have such other powers and perform such other duties as the board of directors shall from time to time designate.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.12</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Treasurer&#8217;s Bonds.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; If required by the board of directors, the Treasurer shall give the corporation a bond (which shall be renewed every six years) in such sum and with such surety or sureties
          as shall be satisfactory to the board of directors, for the faithful performance of the duties of the Treasurer&#8217;s office and for the restoration to the corporation, in case of the Treasurer&#8217;s death, resignation, retirement or removal from office,
          of all books, papers, vouchers, money and other property of whatever kind in the Treasurer&#8217;s possession or under the Treasurer&#8217;s control belonging to the corporation.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.13</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Secretary.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The Secretary shall record in books kept for the purpose all votes and proceedings of the stockholders and of the board of directors at their meetings and shall perform like duties for the standing
          committees when required. Unless the board of directors shall appoint a transfer agent and/or registrar or other officer or officers for the purpose, the Secretary shall be charged with the duty of keeping, or causing to be kept, accurate records
          of all stock outstanding, stock certificates issued and stock transfers; and, subject to such other or different rule as shall be adopted from time to time by the board of directors, such records may be kept solely in the stock certificate books.
          The Secretary shall perform such duties and have such powers additional to the foregoing as the board of directors shall designate.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 5.14</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Temporary and Assistant Secretaries.&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">In the absence of the Secretary from any meeting of the stockholders or board of directors, if there be no Assistant Secretary, if one be elected, or, if there be more than
          one, the one designated for the purpose by the board of directors, otherwise a Temporary Secretary designated by the person presiding at the meeting, shall perform the duties of the Secretary. Each Assistant Secretary shall have such other powers
          and perform such other duties as the board of directors may from time to time designate.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">9</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE VI<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>STOCK</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Issuance of Stock.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The shares of the corporation may be certificated or uncertificated, and the board of directors may authorize the issuance of uncertificated shares of some or all of the
          shares of any or all of the classes or series of capital stock of the corporation.&#160; The corporation may adopt a system of issuance, recordation and transfer of shares of its capital stock by electronic or other means not involving any issuance of
          certificates, including provisions for notice to purchasers or other stockholders in substitution for any required statements on certificates, and as may be required by applicable law and stock exchange or market rules.&#160; Any system so adopted
          shall not become effective as to issued and outstanding certificated shares until the certificates therefor have been surrendered to the corporation. In the event the corporation issues shares of stock to be evidenced by certificates, each holder
          of such shares shall be entitled to have a certificate certifying the number of shares owned by such stockholder in the corporation, signed by or in the name of the corporation by (a) either the Chair of the Board, the Chief Executive Officer,
          the President or a Vice-President and (b) either the Treasurer or an Assistant Treasurer, or the Secretary or an Assistant Secretary of the corporation.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">Certificates may be issued for partly paid shares and in such case upon the face or back of the certificates
        issued to represent any such partly paid shares, the total amount of the consideration to be paid therefor, and the amount paid thereon shall be specified.</div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">If the corporation shall be authorized to issue more than one class of stock or more than one series of any class
        and any such shares are issued in certificated form, the powers, designations, preferences and relative, participating, optional or other special rights of each class of stock or series thereof and the qualification, limitations or restrictions of
        such preferences and/or rights shall be set forth in full or summarized on the face or back of the certificates which the corporation shall issue to represent such class or series of stock, provided that, except as otherwise provided in Section 202
        of the General Corporation Law of the State of Delaware, in lieu of the foregoing requirements, there may be set forth on the face or back of the certificate which the corporation shall issue to represent such class or series of stock, a statement
        that the corporation will furnish without charge to each stockholder who so requests the powers, designations, preferences and relative, participating, optional or other special rights of each class of stock or series thereof and the
        qualifications, limitations or restrictions of such preferences and/or rights. Within a reasonable time after the issuance or transfer of uncertificated shares, the registered owner thereof shall be given a notice, in writing or by electronic
        transmission, containing the information required to be set forth or stated on certificates pursuant to Sections 156, 202(a), 218(a) or 364 of the General Corporation Law of the State of Delaware or with respect to Section 151 a statement that the
        corporation will furnish without charge to each stockholder who so requests the powers, designations, preferences and relative participating, optional or other special rights of each class of stock or series thereof and the qualifications,
        limitations or restrictions of such preferences and/or rights.</div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">Except as otherwise expressly provided by law, the rights and obligations of the holders of uncertificated shares
        and the rights and obligations of the holders of certificates representing stock of the same class and series shall be identical.</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Signature on Stock Certificates.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Where a certificate is countersigned, (1) by a transfer agent other than the corporation or its employee, or (2) by a registrar other than the corporation or its employee,
          any other signature on the certificate may be facsimile. In case any officer, transfer agent or registrar who has signed or whose facsimile has been placed upon a certificate shall have ceased to be such officer, transfer agent or registrar
          before such certificate is issued, it may be issued by the corporation with the same effect as if such officer, transfer agent or registrar remained as such at the date of issue.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">10</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.03</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Lost Certificates.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The board of directors may direct a new certificate or certificates to be issued in place of any certificate or certificates theretofore issued by the corporation alleged to
          have been lost, stolen or destroyed, upon the making of an affidavit of that fact by the person claiming the certificate of stock to be lost, stolen or destroyed. When authorizing such issue of a new certificate or certificates, the board of
          directors may, in its discretion and as a condition precedent to the issuance thereof, require the owner of such lost, stolen or destroyed certificate or certificates, or such owner&#8217;s legal representative, to advertise the same in such manner as
          it shall require and/or to give the corporation a bond in such sum as it may direct as indemnity against any claim that may be made against the corporation with respect to the certificate alleged to have been lost, stolen or destroyed.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.04</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Transfers of Stock.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Upon delivery to the corporation or the transfer agent of the corporation of proper evidence of succession, assignment or authority to transfer, and in the case of
          certificated shares, surrender to the corporation or the transfer agent of the corporation of a certificate for such shares, it shall be the duty of the corporation to record the transaction upon its books, and in the case of certificated shares,
          to issue a new certificate to the person entitled thereto and cancel the old certificate. The corporation may treat as the absolute owner of shares of capital stock of the corporation the person or persons in whose name such shares are registered
          on the books of the corporation. The board may make such additional rules and regulations as it may deem advisable concerning the issue and transfer of book-entry shares or certificates representing shares of the capital stock of the corporation.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.05</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Fixing Record Date.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; In order that the corporation may determine the stockholders entitled to notice of or to vote at any meeting of stockholders or any adjournment thereof or entitled to
          receive payment of any dividend or other distribution of allotment of any rights, or entitled to exercise any rights in respect of any change, conversion or exchange of stock or for the purpose of any other lawful action, the board of directors
          may fix, in advance, a record date, which shall not be more than sixty (60) nor less than ten (10) days before the date of such meeting, nor more than sixty (60) days prior to any other action. A determination of stockholders of record entitled
          to notice of or to vote at a meeting of stockholders shall apply to any adjournment of the meeting; provided, however, that the board of directors may fix a new record date for the adjourned meeting.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 6.06</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Registered Stockholders.</font>&#160; The
        corporation shall be entitled to recognize the exclusive right of a person registered on its books as the owner of shares to receive dividends, and to vote as such owner, and to hold liable for calls&#8217; and assessments a person registered on its
        books as the owner of shares, and shall not be bound to recognize any equitable or other claim to or interest in such share or shares on the part of any other person, whether or not it shall have express or other notice thereof, except as otherwise
        provided by the laws of the State of Delaware.</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE VII<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>GENERAL PROVISIONS</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Dividends.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Dividends upon the capital stock of the corporation, subject to the provisions of applicable law, may be declared by the board of directors at any regular or special meeting, and paid either (a)
          out of its surplus, as defined by law, or (b) in case there shall be no such surplus, out of the corporation&#8217;s net profits for the fiscal year in which the dividend is declared and/or the preceding fiscal year. If the capital of the corporation,
          computed in accordance with law, shall have been diminished by depreciation in the value of its property, or by losses, or otherwise, to an amount less than the aggregate amount of the capital represented by the issued and outstanding stock of
          all classes having a preference upon the distribution of assets, the board of directors shall not, except as allowed by the laws of the State of Delaware, declare and pay out of such net profits any dividends upon any shares of any classes of the
          corporation&#8217;s capital stock until the deficiency in the amount of capital represented by the issued and outstanding stock of all classes having a preference upon the distribution of assets shall have been repaired. Dividends may be paid in cash,
          in property, or in shares of the capital stock, subject to the provisions of the Certificate of Incorporation.</font></div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">11</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.02</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Reserves.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Before payment of any dividend, there may be set aside out of any funds of the corporation available for dividends such sum or sums as the directors from time to time, in their absolute discretion,
          think proper as a reserve or reserves to meet contingencies, or for equalizing dividends, or for repairing or maintaining any property of the corporation, or for such other purpose as the directors may think conducive to the interest of the
          corporation, and the directors may modify or abolish any such reserve in the manner in which it was created.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.03</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Checks.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; All checks or demands for money and notes of the corporation shall be signed by such officer or officers or such other person or persons as the board of directors may from time to time designate.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.04</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Fiscal Year.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The fiscal year of the corporation shall end on December 31.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.05</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Seal.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The corporate seal shall have inscribed thereon the name of the corporation, the year of its organization and the word &#8220;Delaware.&#8221; The seal may be used by causing it or a facsimile thereof to be
          impressed or affixed or reproduced or otherwise.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.06</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Indemnification and Advancement.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The corporation shall indemnify any current or former director, officer, employee or agent of the corporation who was or is a party or is threatened to be made a party to
          any threatened, pending or completed action, suit or proceeding, whether civil, criminal, administrative or investigative, to the full extent contemplated by Section 145 of the General Corporation Law of the State of Delaware. The corporation may
          purchase and maintain insurance on behalf of any person who is or was a director, officer, employee or agent of the corporation against any liability asserted against such person and incurred by such person in any such capacity, or arising out of
          such person&#8217;s status as such, whether or not the corporation would have the power to indemnify such person against such liability under the provisions of the General Corporation Law of the State of Delaware. The corporation&#8217;s indemnity of any
          person who is or was a director, officer, employee or agent of the corporation shall be reduced by any amounts such person may collect as indemnification under any policy of insurance purchased and maintained on such person&#8217;s behalf by the
          corporation.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">The indemnification provided for herein shall not be deemed exclusive of any other rights to which those
        indemnified may be entitled under any certificate of&#160; incorporation, agreement, vote of stockholders or disinterested directors or otherwise, both as to action in such person&#8217;s official capacity and as to action in another capacity while holding
        such office, and shall continue as to a person who has ceased to be a director, officer, employee or agent and shall inure to the benefit of the heirs, executors and administrators of such a person.</div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">In addition to the right of indemnification granted under this Section 7.06, current and former directors and
        officers of the corporation shall also have the right to be paid by the corporation the expenses (including attorney&#8217;s fees) incurred in defending any such action, suit or proceeding contemplated by Section 145 of the General Corporation Law of the
        State of Delaware in advance of the final disposition of any such action, suit or proceeding upon the corporation&#8217;s receipt of an undertaking by or on behalf of such current or former director or officer to repay such amount if it shall be
        ultimately determined that such current or former officer or director is not entitled to be indemnified by the corporation pursuant to law or this Section 7.06.</div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt;">Neither the amendment nor repeal of this Section 7.06, nor the adoption of any provisions of the Certificate of
        Incorporation inconsistent with this Section 7.06, shall eliminate or reduce the effect of this Section 7.06 in respect of any matter occurring, or any cause of action, suit or claim that, but for this Section 7.06 would accrue or arise, prior to
        such amendment, repeal or adopting of an inconsistent provision.</div>
      <div><br>
      </div>
    </div>
    <div style="clear: both; margin-top: 10pt; margin-bottom: 10pt;" class="BRPFPageBreakArea">
      <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">12</font></div>
      <div style="page-break-after: always;" class="BRPFPageBreak">
        <hr noshade="noshade" style="margin: 4px 0px; width: 100%; border-width: 0; height: 2px; color: #000000; background-color: #000000; clear: both;"></div>
    </div>
    <div><br>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.07</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Reliance upon Books, Reports and Records.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Each director, each member of any committee designated by the board of directors, and each officer of the corporation shall, in the performance of such person&#8217;s duties, be
          fully protected in relying in good faith upon the books of account or other records of the corporation, including reports made to the corporation by any of its officers, by an independent certified public accountant, or by an appraiser selected
          with reasonable care.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.08</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Inspection of Books by Stockholders.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; Subject to the laws of the State of Delaware, the board of directors shall have the power to determine from time to time and at any time whether and to what extent and at
          what times and places and under what conditions and regulations the records of account, books and stock ledgers of the corporation, or any of them, shall be open to inspection and copying by stockholders, their agents or attorneys; and no
          stockholder, or agent or attorney of such stockholder, shall have any right to inspect or copy any record of account or book or stock ledger, or any part thereof, of the corporation, except as conferred by the laws of the State of Delaware,
          unless and until authorized so to do by resolution of the board of directors or of the stockholders and unless and until such stockholder agrees to comply with, and abide by, such conditions and regulations governing inspection and copying
          thereof, as determined by the board of directors.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.09</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Transactions with Directors, Officers, etc.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; The corporation may enter into contracts or transactions with one or more of its directors, officers, employees or stockholders, or with any other corporation, partnership,
          association, or other organization in which one or more of its directors, officers, employees or stockholders are directors, officers, partners, employees or stockholders, or have a financial interest, to the full extent authorized and permitted
          by the laws of the State of Delaware.</font></div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 7.10</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Forum.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"> Unless the corporation consents in writing to the selection of an alternative forum, to the fullest extent permitted by law, all Internal Corporate Claims shall be brought solely and exclusively in
          the Court of Chancery of the State of Delaware (or, if such court declines to accept jurisdiction, the Superior Court of the State of Delaware, or, if such other court declines to accept jurisdiction, the United States District Court for the
          District of Delaware).&#160; &#8220;Internal Corporate Claims&#8221; means claims, including claims in the right of the corporation, brought by a current or former stockholder (including a current or former beneficial owner) (i) that are based upon a violation of
          a duty by a current or former director or officer or stockholder in such capacity or (ii) as to which the General Corporation Law of the State of Delaware confers jurisdiction upon the Court of Chancery of the State of Delaware.</font></div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: center; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 12pt; font-weight: bold;">ARTICLE VIII<font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;"><br>
          <br>
        </font>AMENDMENTS</div>
      <div><br>
      </div>
    </div>
    <div>
      <div style="text-align: justify; text-indent: 36pt; margin-bottom: 12pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Section 8.01</font><font style="font-size: 8pt; font-family: 'Times New Roman', Times, serif;">&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; </font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">Amendments.</font><font style="font-size: 12pt; font-family: 'Times New Roman', Times, serif;">&#160; These By-Laws may be altered, amended or repealed or new By-Laws may be adopted by the stockholders, only by the affirmative vote of the holders of a majority of the common stock outstanding, or by
          the board of directors at any regular meeting of the stockholders or of the board of directors or at any special meeting of the stockholders or of the board of directors if notice of such alteration, amendment, repeal or adoption of new By-Laws
          be contained in the notice of such meeting, or by any consent of the directors executed in accordance with the Certificate of Incorporation or these By-Laws.</font></div>
      <div><br>
      </div>
    </div>
    <div><br>
    </div>
    <br>
  </div>
  <div class="BRPFPageNumberArea" style="text-align: center;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;">13</font></div>
  <div class="BRPFPageNumberArea" style="text-align: center;">
    <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 8pt; font-weight: normal; font-style: normal;"> </font></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>ex23_1.htm
<DESCRIPTION>CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM
<TEXT>
<html>
  <head>
    <title></title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
  </head>
<body bgcolor="#ffffff" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000;">
  <div>
    <hr noshade="noshade" align="center" style="height: 4px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
  <div style="text-align: right;"><font style="font-weight: bold;">Exhibit 23.1</font><br>
  </div>
  <div style="text-align: left;">
    <div><br>
    </div>
    <div>
      <div style="text-align: center; line-height: 13.7pt; font-family: 'Times New Roman',Times,serif; font-size: 9pt;"><u>INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM&#8217;S CONSENT</u></div>
      <div style="line-height: 13.7pt; font-size: 9pt; font-family: 'Times New Roman';"><font style="font-size: 10pt;"><br style="line-height: 13.7pt;">
        </font> </div>
      <font style="font-size: 10pt;"><br style="line-height: 13.7pt;">
      </font>
      <div style="text-align: justify; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">We consent to the incorporation by reference in the Registration Statement of TransAct Technologies Incorporated on Form S-8<font style="font-family: 'Times New Roman',Times,serif; font-weight: bold;">&#160;</font>[File Nos. 333-203184, 333-132624, 333-170515, 333-221514, and 333-248054] and Form S-3 [File No. 333-248055 and 333-261026] of our report dated March 27,
        2023, with respect to our audits of the consolidated financial statements of TransAct Technologies Incorporated as of December 31, 2022 and 2021 and for the years ended December 31, 2022 and 2021, which report is included in this Annual Report on
        Form 10-K of TransAct Technologies Incorporated for the year ended December 31, 2022.</div>
      <div style="font-size: 10pt;"><br>
      </div>
      <div style="text-align: justify; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">Our report on the consolidated financial statements refers to a change in the method of accounting for its method of inventory valuation from
        standard cost (which approximated actual cost on a &#8220;first-in, first-out&#8221; basis) to the average cost method of inventory accounting,<font style="font-family: 'Times New Roman',Times,serif; font-weight: bold;">&#160;</font>which was applied
        retrospectively to all periods presented.&#160;</div>
      <div style="font-size: 10pt;"><br>
      </div>
      <div style="font-size: 10pt;"><br>
      </div>
      <div style="text-align: left; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">/s/ Marcum LLP</div>
      <div style="font-size: 10pt;"><br>
      </div>
      <div style="text-align: left; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">Hartford, CT</div>
      <div style="text-align: left; font-family: 'Times New Roman',Times,serif; font-size: 10pt;">March 27, 2023</div>
    </div>
    <div>
      <div>
        <div>
          <div><br>
            <div><br>
              <div><br>
              </div>
              <div>
                <hr noshade="noshade" align="center" style="height: 2px; color: #000000; background-color: #000000; text-align: center; margin-left: auto; margin-right: auto; border: none;"></div>
              <br>
            </div>
            <br>
          </div>
          <br>
        </div>
        <br>
      </div>
      <br>
    </div>
    <br>
    <br>
    <div><br>
    </div>
    <div><br>
      <br>
    </div>
    <div><br>
      <br>
      <br>
    </div>
    <br>
  </div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>ex31_1.htm
<DESCRIPTION>CERTIFICATION OF CEO PURSUANT TO SECTION 302 OF SOX ACT OF 2002
<TEXT>
<html><head>
    <title>&nbsp;</title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
  </head><body style="font-family: 'Times New Roman'; font-size: 10pt;"><div id="TRGRSegment:90078aae-4915-41d6-bf26-54983813acb4"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibit 31.1</div><div><br></div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">RULE 13a-14(a) CERTIFICATION OF CHIEF EXECUTIVE OFFICER</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">IN ACCORDANCE WITH SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</div><div><br></div><div><br></div><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">I, Bart C. Shuldman, certify that:</div><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z53dee2c9802544f998cb41ee4b9d4293"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">I have reviewed this Annual Report on Form 10-K of TransAct Technologies Incorporated;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z55f1f0dfdba749f68ab87aa9ce01aad9"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z9e7f0e27cb8e4ac6b584abe8e9150707"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z1fd43577e843448a9033d51c879ab797"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The registrant&#8217;s other certifying officer 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:</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z410e936890074071af7b46117fc1d4b1"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(a)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z7fb0e052cf57442ea292bde025278f76"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(b)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z310fb393efd1474997639eb21a146c10"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(c)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z7b86acd5512d474ab7ee6e1306cf7c18"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(d)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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'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</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z293e599f432948ebadb7c8c2d9483bc3"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z99ce420101ba4cc68fa8a5305e0b2631"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(a)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zcc7f0fb80afe4b4d8eb551bfd17fdfc4"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(b)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</div></td></tr></table><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date:&#160;&#160;March 27, 2023</div><div><br></div><table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" id="z084952721a85438487d81dcbb2feef4a"><tr><td style="width: 47.15%; vertical-align: middle;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.15%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Bart C. Shuldman</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.15%; vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Bart C. Shuldman</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.15%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chairman and Chief Executive Officer</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr></table><div style="margin-bottom: 12pt;"><br></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>ex31_2.htm
<DESCRIPTION>CERTIFICATION OF CFO PURSUANT TO SECTION 302 OF SOX ACT OF 2002
<TEXT>
<html><head>
    <title>&nbsp;</title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
  </head><body style="font-family: 'Times New Roman'; font-size: 10pt;"><div id="TRGRSegment:afd4f310-320f-43fd-9a6b-0170e56827a0"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibit 31.2</div><div><br></div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">RULE 13a-14(a) CERTIFICATION OF CHIEF FINANCIAL OFFICER</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">IN ACCORANCE WITH SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002</div><div><br></div><div><br></div><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">I, Steven A. DeMartino, certify that:</div><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zc9ca7334757140878dd4bd07d8eb476c"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">I have reviewed this Annual Report on Form 10-K of TransAct Technologies Incorporated;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zde78331caa7c4e1892ff18fd6b740f31"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z783c619002304a1bbea7a71c80f105cb"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zdef529d4b21a433c93b4065a3ff13b1d"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The registrant&#8217;s other certifying officer 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:</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z90d5ae9ca85346c8ba467191ac385740"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(a)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z23cdfb2255d348849c19a7394b5cc130"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(b)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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;</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="za9ec670a48fd4d0ca23801e2608d2d15"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(c)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z08c513e3d0ef472c894b0b222cf0cc26"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(d)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">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'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</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z20c4621412544325a3838e1ba2a34acb"><tr><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5.</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The registrant's other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z5340ddf523d74efea5e535087fd05ded"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(a)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="z308ae0d1c6cb4253989a85b7c409e7a5"><tr><td style="width: 36pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(b)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.</div></td></tr></table><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date:&#160;&#160;March 27, 2023</div><div><br></div><div><br></div><table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" id="z7b9c6873a69c4bcd883f779e5ad45e07"><tr><td style="width: 46.89%; vertical-align: middle;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td><td style="width: 53.11%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 46.89%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Steven A. DeMartino</div></td><td style="width: 53.11%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 46.89%; vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Steven A. DeMartino</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">President, Chief Financial Officer, Treasurer and Secretary</div></td><td style="width: 53.11%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr></table><div><br></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32
<SEQUENCE>6
<FILENAME>ex32.htm
<DESCRIPTION>CERTIFICATION OF CEO AND CFO PURSUANT TO SECTION 906 OF SOX ACT OF 2002
<TEXT>
<html><head>
    <title>&nbsp;</title>
    <!-- Licensed to: Broadridge Financial Solutions, Inc.
         Document created using Broadridge PROfile 23.3.1.5138
         Copyright 1995 - 2023 Broadridge -->
  </head><body style="font-family: 'Times New Roman'; font-size: 10pt;"><div id="TRGRSegment:24ab536c-f0d7-4991-b0af-c8edcf4b4b0d"><div style="text-align: right; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Exhibit 32</div><div><br></div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">CERTIFICATION OF CHIEF EXECUTIVE OFFICER AND CHIEF FINANCIAL OFFICER</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">PURSUANT TO 18 U.S.C. SECTION 1350</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">AS ADOPTED PURSUANT TO</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</div><div><br></div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In connection with the Annual Report of TransAct Technologies Incorporated (the &#8220;Company&#8221;) on Form 10-K for the period ending December 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the &#8220;Report&#8221;), each of the undersigned officers of the Company, certify, pursuant to 18 U.S.C. &#167; 1350, as adopted pursuant to &#167; 906 of the Sarbanes-Oxley Act of 2002, that to the best of his knowledge:</div><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zb315613b9aed406e9d1ab88842ca4d8b"><tr><td style="width: 27.1pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</div></td></tr></table><div><br></div><table style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" class="DSPFListTable" cellpadding="0" cellspacing="0" id="zb89a7fa28c2946aa90633a9e0eb96b8d"><tr><td style="width: 27.1pt;"></td><td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2)</td><td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</div></td></tr></table><div><br></div><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date:&#160;&#160;March 27, 2023</div><div><br></div><table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" id="z0ec8157212cf4733b7574bd25335a40d"><tr><td style="width: 47.15%; vertical-align: middle;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.15%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Bart C. Shuldman</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.15%; vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Bart C. Shuldman</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chairman and Chief Executive Officer</div></td><td style="width: 52.85%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr></table><div><br></div><div><br></div><div><br></div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Date: March 27, 2023</div><div><br></div><table cellpadding="0" cellspacing="0" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;" id="zd454bea89eb24345a63d90f40b36aeab"><tr><td style="width: 47.02%; vertical-align: middle;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td><td style="width: 52.98%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.02%; vertical-align: top; border-bottom: #000000 2px solid;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">/s/ Steven A. DeMartino</div></td><td style="width: 52.98%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr><tr><td style="width: 47.02%; vertical-align: bottom;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Steven A. DeMartino</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">President, Chief Financial Officer, Treasurer and Secretary</div></td><td style="width: 52.98%; vertical-align: top;"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;</div></td></tr></table><div style="margin-bottom: 12pt;"><br></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>7
<FILENAME>tact-20221231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 23.3.1.5138 Broadridge-->
<xs:schema targetNamespace="http://transact-tech.com/20221231" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tact="http://transact-tech.com/20221231" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:us-types="http://fasb.org/us-types/2022" xmlns:srt-types="http://fasb.org/srt-types/2022" xmlns:dei="http://xbrl.sec.gov/dei/2022" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21">
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20221231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20221231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20221231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tact-20221231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:roleType roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" id="DocumentAndEntityInformation">
        <link:definition>000100 - Document - Document and Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" id="ConsolidatedBalanceSheets">
        <link:definition>010000 - Statement - 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://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" id="ConsolidatedBalanceSheetsParenthetical">
        <!--Parent Role: CONSOLIDATED BALANCE SHEETS-->
        <link:definition>010100 - Statement - 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://transact-tech.com/role/ConsolidatedStatementsOfOperations" id="ConsolidatedStatementsOfOperations">
        <link:definition>020000 - Statement - 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://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss" id="ConsolidatedStatementsOfComprehensiveLoss">
        <link:definition>030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS</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://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" id="ConsolidatedStatementsOfChangesInShareholdersEquity">
        <link:definition>040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN 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://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" id="ConsolidatedStatementsOfCashFlows">
        <link:definition>050000 - Statement - 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://transact-tech.com/role/DescriptionOfBusiness" id="DescriptionOfBusiness">
        <link:definition>060100 - 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://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" id="SummaryOfSignificantAccountingPolicies">
        <link:definition>060200 - 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://transact-tech.com/role/Inventories" id="Inventories">
        <link:definition>060300 - 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://transact-tech.com/role/FixedAssetsNet" id="FixedAssetsNet">
        <link:definition>060400 - Disclosure - Fixed assets, net</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://transact-tech.com/role/IntangibleAssetsNet" id="IntangibleAssetsNet">
        <link:definition>060500 - Disclosure - Intangible assets, net</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://transact-tech.com/role/AccruedLiabilities" id="AccruedLiabilities">
        <link:definition>060600 - Disclosure - Accrued 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://transact-tech.com/role/RetirementSavingsPlan" id="RetirementSavingsPlan">
        <link:definition>060700 - Disclosure - Retirement savings plan</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://transact-tech.com/role/Borrowings" id="Borrowings">
        <link:definition>060800 - Disclosure - Borrowings</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://transact-tech.com/role/StockIncentivePlans" id="StockIncentivePlans">
        <link:definition>060900 - Disclosure - Stock incentive plans</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://transact-tech.com/role/IncomeTaxes" id="IncomeTaxes">
        <link:definition>061000 - 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://transact-tech.com/role/EarningsPerShare" id="EarningsPerShare">
        <link:definition>061100 - Disclosure - Earnings per share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/StockRepurchaseProgram" id="StockRepurchaseProgram">
        <link:definition>061200 - Disclosure - Stock repurchase program</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://transact-tech.com/role/GeographicAreaInformation" id="GeographicAreaInformation">
        <link:definition>061300 - Disclosure - Geographic area information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/Leases" id="Leases">
        <link:definition>061400 - 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://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" id="QuarterlyResultsOfOperationsUnaudited">
        <link:definition>061500 - Disclosure - Quarterly results of operations (unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/ChangeInAccountingPrinciple" id="ChangeInAccountingPrinciple">
        <link:definition>061600 - Disclosure - Change in accounting principle</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://transact-tech.com/role/SubsequentEvents" id="SubsequentEvents">
        <link:definition>061700 - 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" id="SummaryOfSignificantAccountingPoliciesPolicies">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>070200 - 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" id="SummaryOfSignificantAccountingPoliciesTables">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>080200 - 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://transact-tech.com/role/InventoriesTables" id="InventoriesTables">
        <!--Parent Role: Inventories-->
        <link:definition>080300 - 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://transact-tech.com/role/FixedAssetsNetTables" id="FixedAssetsNetTables">
        <!--Parent Role: Fixed assets, net-->
        <link:definition>080400 - Disclosure - Fixed assets, net (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://transact-tech.com/role/IntangibleAssetsNetTables" id="IntangibleAssetsNetTables">
        <!--Parent Role: Intangible assets, net-->
        <link:definition>080500 - Disclosure - Intangible assets, net (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://transact-tech.com/role/AccruedLiabilitiesTables" id="AccruedLiabilitiesTables">
        <!--Parent Role: Accrued liabilities-->
        <link:definition>080600 - Disclosure - Accrued 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://transact-tech.com/role/StockIncentivePlansTables" id="StockIncentivePlansTables">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>080900 - Disclosure - Stock incentive plans (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://transact-tech.com/role/IncomeTaxesTables" id="IncomeTaxesTables">
        <!--Parent Role: Income taxes-->
        <link:definition>081000 - 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://transact-tech.com/role/EarningsPerShareTables" id="EarningsPerShareTables">
        <!--Parent Role: Earnings per share-->
        <link:definition>081100 - Disclosure - Earnings per share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/GeographicAreaInformationTables" id="GeographicAreaInformationTables">
        <!--Parent Role: Geographic area information-->
        <link:definition>081300 - Disclosure - Geographic area information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/LeasesTables" id="LeasesTables">
        <!--Parent Role: Leases-->
        <link:definition>081400 - 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://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" id="QuarterlyResultsOfOperationsUnauditedTables">
        <!--Parent Role: Quarterly results of operations (unaudited)-->
        <link:definition>081500 - Disclosure - Quarterly results of operations (unaudited) (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://transact-tech.com/role/ChangeInAccountingPrincipleTables" id="ChangeInAccountingPrincipleTables">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>081600 - Disclosure - Change in accounting principle (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://transact-tech.com/role/DescriptionOfBusinessDetails" id="DescriptionOfBusinessDetails">
        <!--Parent Role: Description of business-->
        <link:definition>090100 - Disclosure - Description of business (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" id="SummaryOfSignificantAccountingPoliciesSegmentReportingDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090200 - Disclosure - Summary of significant accounting policies, Segment reporting (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" id="SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090202 - Disclosure - Summary of significant accounting policies, Allowance for doubtful accounts (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" id="SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090204 - Disclosure - Summary of significant accounting policies, Fixed 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" id="SummaryOfSignificantAccountingPoliciesLeasesDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090206 - Disclosure - Summary of significant accounting policies, 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" id="SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090208 - Disclosure - Summary of significant accounting policies, Goodwill and 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090214 - Disclosure - Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" id="SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault">
        <link:definition>090214 - Disclosure - Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)Default</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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" id="SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" id="SummaryOfSignificantAccountingPoliciesWarrantyDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090218 - Disclosure - Summary of significant accounting policies, 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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" id="SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090220 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (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://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" id="SummaryOfSignificantAccountingPoliciesAdvertisingDetails">
        <!--Parent Role: Summary of significant accounting policies-->
        <link:definition>090222 - Disclosure - Summary of significant accounting policies, Advertising (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://transact-tech.com/role/InventoriesDetails" id="InventoriesDetails">
        <!--Parent Role: Inventories-->
        <link:definition>090300 - 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://transact-tech.com/role/FixedAssetsNetDetails" id="FixedAssetsNetDetails">
        <!--Parent Role: Fixed assets, net-->
        <link:definition>090400 - Disclosure - Fixed assets, net (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://transact-tech.com/role/IntangibleAssetsNetDetails" id="IntangibleAssetsNetDetails">
        <!--Parent Role: Intangible assets, net-->
        <link:definition>090500 - Disclosure - Intangible assets, net (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://transact-tech.com/role/AccruedLiabilitiesDetails" id="AccruedLiabilitiesDetails">
        <!--Parent Role: Accrued liabilities-->
        <link:definition>090600 - Disclosure - Accrued 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://transact-tech.com/role/RetirementSavingsPlanDetails" id="RetirementSavingsPlanDetails">
        <!--Parent Role: Retirement savings plan-->
        <link:definition>090700 - Disclosure - Retirement savings plan (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://transact-tech.com/role/BorrowingsDetails" id="BorrowingsDetails">
        <!--Parent Role: Borrowings-->
        <link:definition>090800 - Disclosure - Borrowings (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://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" id="StockIncentivePlansStockIncentivePlansDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>090900 - Disclosure - Stock incentive plans, Stock incentive plans (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://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" id="StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>090902 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (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://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" id="StockIncentivePlansSharebasedCompensationExpenseDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>090904 - Disclosure - Stock incentive plans, Share-based compensation expense (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://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" id="StockIncentivePlansStockOptionsDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>090906 - Disclosure - Stock incentive plans, Stock options (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://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails" id="StockIncentivePlansRestrictedStockDetails">
        <!--Parent Role: Stock incentive plans-->
        <link:definition>090908 - Disclosure - Stock incentive plans, Restricted stock (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails" id="IncomeTaxesComponentsOfIncomeTaxBenefitDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091000 - Disclosure - Income taxes, Components of income tax benefit (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://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" id="IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091002 - Disclosure - Income taxes, Deferred tax assets and 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://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" id="IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091004 - Disclosure - Income taxes, Valuation allowance on deferred tax 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://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" id="IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091006 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (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://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" id="IncomeTaxesUnrecognizedTaxBenefitsDetails">
        <!--Parent Role: Income taxes-->
        <link:definition>091008 - Disclosure - Income taxes, Unrecognized tax benefits (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://transact-tech.com/role/EarningsPerShareDetails" id="EarningsPerShareDetails">
        <!--Parent Role: Earnings per share-->
        <link:definition>091100 - Disclosure - Earnings per share (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://transact-tech.com/role/StockRepurchaseProgramDetails" id="StockRepurchaseProgramDetails">
        <!--Parent Role: Stock repurchase program-->
        <link:definition>091200 - Disclosure - Stock repurchase program (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://transact-tech.com/role/GeographicAreaInformationDetails" id="GeographicAreaInformationDetails">
        <!--Parent Role: Geographic area information-->
        <link:definition>091300 - Disclosure - Geographic area information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/LeasesDetails" id="LeasesDetails">
        <!--Parent Role: Leases-->
        <link:definition>091400 - 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://transact-tech.com/role/LeasesDetailsCalc2" id="LeasesDetailsCalc2">
        <!--Parent Role: Leases (Details)-->
        <link:definition>091402 - Disclosure - Leases (Details) Calc 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://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" id="QuarterlyResultsOfOperationsUnauditedDetails">
        <!--Parent Role: Quarterly results of operations (unaudited)-->
        <link:definition>091500 - Disclosure - Quarterly results of operations (unaudited) (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://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails" id="ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>091600 - Disclosure - Change in accounting principle, Effect of Change on Balance Sheets (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://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails" id="ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>091602 - Disclosure - Change in accounting principle, Effect of Change on Statements of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails" id="ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>091604 - Disclosure - Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails" id="ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>091606 - Disclosure - Change in accounting principle, Effect of Change on Statements of Cash Flows (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://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails" id="ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails">
        <!--Parent Role: Change in accounting principle-->
        <link:definition>091608 - Disclosure - Change in accounting principle, Effect of Change on Statements of Changes in 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://transact-tech.com/role/SubsequentEventsDetails" id="SubsequentEventsDetails">
        <!--Parent Role: Subsequent events-->
        <link:definition>091702 - Disclosure - Subsequent events (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:import namespace="http://fasb.org/us-gaap/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/dei/2022" schemaLocation="https://xbrl.sec.gov/dei/2022/dei-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/country/2022" schemaLocation="https://xbrl.sec.gov/country/2022/country-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/currency/2022" schemaLocation="https://xbrl.sec.gov/currency/2022/currency-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/exch/2022" schemaLocation="https://xbrl.sec.gov/exch/2022/exch-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/naics/2022" schemaLocation="https://xbrl.sec.gov/naics/2022/naics-2022.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/sic/2022" schemaLocation="https://xbrl.sec.gov/sic/2022/sic-2022.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <xs:import namespace="http://xbrl.sec.gov/stpr/2022" schemaLocation="https://xbrl.sec.gov/stpr/2022/stpr-2022.xsd" />
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <xs:import namespace="http://www.xbrl.org/2004/ref" schemaLocation="http://www.xbrl.org/2004/ref-2004-08-10.xsd" />
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <xs:import namespace="http://fasb.org/us-types/2022" schemaLocation="https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd" />
  <xs:import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <xs:import namespace="http://fasb.org/srt/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd" />
  <xs:import namespace="http://fasb.org/srt-types/2022" schemaLocation="https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd" />
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd" />
  <xs:element name="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" id="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EquityAwardsAggregateIntrinsicValueAbstract" id="tact_EquityAwardsAggregateIntrinsicValueAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="EquityAwardsWeightedAverageRemainingContractualTermAbstract" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="EquityIncentivePlan2014Member" id="tact_EquityIncentivePlan2014Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" id="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" id="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" id="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" id="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="RevolvingCreditFacilitySienaLendingGroupLlcMember" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventory" id="tact_DebtInstrumentFinancialCovenantEligibleInventory" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="debit" />
  <xs:element name="PaycheckProtectionProgramLoanMember" id="tact_PaycheckProtectionProgramLoanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="GainFromEmployeeRetentionCredit" id="tact_GainFromEmployeeRetentionCredit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="IncreaseDecreaseInEmployeeRetentionCreditReceivable" id="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="PaymentsForProceedsFromNotesReceivable" id="tact_PaymentsForProceedsFromNotesReceivable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="FurnitureAndOfficeEquipmentMember" id="tact_FurnitureAndOfficeEquipmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ComputerSoftwareAndEquipmentMember" id="tact_ComputerSoftwareAndEquipmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FixedAssetsExcludingConstructionInProcessMember" id="tact_FixedAssetsExcludingConstructionInProcessMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="EmployeeRetentionCreditReceivableAbstract" id="tact_EmployeeRetentionCreditReceivableAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ProceedsFromEmployeeRetentionCredit" id="tact_ProceedsFromEmployeeRetentionCredit" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="debit" />
  <xs:element name="DescriptionOfBusinessAbstract" id="tact_DescriptionOfBusinessAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="NumberOfSoftwareSolutions" id="tact_NumberOfSoftwareSolutions" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="Covid19Member" id="tact_Covid19Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="PercentageReductionInWorkforce" id="tact_PercentageReductionInWorkforce" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="PercentageReductionInSalaries" id="tact_PercentageReductionInSalaries" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="PercentageReductionInCashRetainerFees" id="tact_PercentageReductionInCashRetainerFees" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="NumberOfManufacturers" id="tact_NumberOfManufacturers" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" />
  <xs:element name="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" id="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" id="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="PacificRimMember" id="tact_PacificRimMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="InternationalMember" id="tact_InternationalMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" id="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="TaxCreditCarryforwardExpirationPeriod" id="tact_TaxCreditCarryforwardExpirationPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="OperatingLossCarryforwardsNotSubjectToExpiration" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="OperatingLossCarryforwardsSubjectToExpiration" id="tact_OperatingLossCarryforwardsSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="TaxCreditCarryforwardAmountSubjectToExpiration" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="ExtendedProductWarrantyPeriod" id="tact_ExtendedProductWarrantyPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="InternationalGameTechnologyPlcMember" id="tact_InternationalGameTechnologyPlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="NcrCorporationMember" id="tact_NcrCorporationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TheBrightGroupMember" id="tact_TheBrightGroupMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="ScientificGamesMember" id="tact_ScientificGamesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="LotteryMember" id="tact_LotteryMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="FoodServiceTechnologyMember" id="tact_FoodServiceTechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TransactServicesGroupMember" id="tact_TransactServicesGroupMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="PrintrexMember" id="tact_PrintrexMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="CasinoAndGamingMember" id="tact_CasinoAndGamingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="PosAutomationAndBankingMember" id="tact_PosAutomationAndBankingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" type="xbrli:durationItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="ContractWithCustomerRevenueRecognized" id="tact_ContractWithCustomerRevenueRecognized" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="credit" />
  <xs:element name="ContractWithCustomerAssetLiabilityNet" id="tact_ContractWithCustomerAssetLiabilityNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="instant" xbrli:balance="debit" />
  <xs:element name="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" />
  <xs:element name="FacilityInHamdenConnecticutMember" id="tact_FacilityInHamdenConnecticutMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
  <xs:element name="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" abstract="false" xbrli:periodType="duration" xbrli:balance="credit" />
  <xs:element name="FacilityInLasVegasNevadaMember" id="tact_FacilityInLasVegasNevadaMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" abstract="true" xbrli:periodType="duration" />
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tact-20221231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 23.3.1.5138 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesComponentsOfIncomeTaxBenefitDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfComprehensiveLoss" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedBalanceSheets" />
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="OtherAssetsCurrent" xlink:title="calculation: AssetsCurrent to OtherAssetsCurrent" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="PrepaidTaxes" xlink:title="calculation: AssetsCurrent to PrepaidTaxes" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="calculation: AssetsCurrent to CashAndCashEquivalentsAtCarryingValue" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="AccountsReceivableNetCurrent" xlink:title="calculation: AssetsCurrent to AccountsReceivableNetCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="InventoryNet" xlink:title="calculation: AssetsCurrent to InventoryNet" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="NontradeReceivablesCurrent" xlink:title="NontradeReceivablesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsCurrent" xlink:to="NontradeReceivablesCurrent" xlink:title="calculation: AssetsCurrent to NontradeReceivablesCurrent" order="5.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="AssetsCurrent" xlink:title="calculation: Assets to AssetsCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="OtherAssetsNoncurrent" xlink:title="calculation: AssetsNoncurrent to OtherAssetsNoncurrent" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="calculation: AssetsNoncurrent to DeferredIncomeTaxAssetsNet" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="calculation: AssetsNoncurrent to IntangibleAssetsNetExcludingGoodwill" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="Goodwill" xlink:title="calculation: AssetsNoncurrent to Goodwill" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="calculation: AssetsNoncurrent to PropertyPlantAndEquipmentNet" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AssetsNoncurrent" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="calculation: AssetsNoncurrent to OperatingLeaseRightOfUseAsset" order="5.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Assets" xlink:to="AssetsNoncurrent" xlink:title="calculation: Assets to AssetsNoncurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="TreasuryStockValue" xlink:title="calculation: StockholdersEquity to TreasuryStockValue" order="8.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="CommonStockValue" xlink:title="calculation: StockholdersEquity to CommonStockValue" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="calculation: StockholdersEquity to RetainedEarningsAccumulatedDeficit" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="calculation: StockholdersEquity to AdditionalPaidInCapitalCommonStock" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="calculation: StockholdersEquity to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="StockholdersEquity" xlink:to="PreferredStockValue" xlink:title="calculation: StockholdersEquity to PreferredStockValue" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="StockholdersEquity" xlink:title="calculation: LiabilitiesAndStockholdersEquity to StockholdersEquity" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to OtherLiabilitiesNoncurrent" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to ContractWithCustomerLiabilityNoncurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesNoncurrent" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="calculation: LiabilitiesNoncurrent to OperatingLeaseLiabilityNoncurrent" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Liabilities" xlink:to="LiabilitiesNoncurrent" xlink:title="calculation: Liabilities to LiabilitiesNoncurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccountsPayableCurrent" xlink:title="calculation: LiabilitiesCurrent to AccountsPayableCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="AccruedLiabilitiesCurrent" xlink:title="calculation: LiabilitiesCurrent to AccruedLiabilitiesCurrent" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="calculation: LiabilitiesCurrent to ContractWithCustomerLiabilityCurrent" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="LinesOfCreditCurrent" xlink:title="calculation: LiabilitiesCurrent to LinesOfCreditCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesCurrent" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="calculation: LiabilitiesCurrent to OperatingLeaseLiabilityCurrent" order="3.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="Liabilities" xlink:to="LiabilitiesCurrent" xlink:title="calculation: Liabilities to LiabilitiesCurrent" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="Liabilities" xlink:title="calculation: LiabilitiesAndStockholdersEquity to Liabilities" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="InterestIncomeDomesticDeposits" xlink:title="calculation: NonoperatingIncomeExpense to InterestIncomeDomesticDeposits" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="InterestExpense" xlink:title="InterestExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="InterestExpense" xlink:title="calculation: NonoperatingIncomeExpense to InterestExpense" order="5.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="calculation: NonoperatingIncomeExpense to OtherNonoperatingIncomeExpense" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_GainFromEmployeeRetentionCredit" xlink:label="GainFromEmployeeRetentionCredit" xlink:title="GainFromEmployeeRetentionCredit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="GainFromEmployeeRetentionCredit" xlink:title="calculation: NonoperatingIncomeExpense to GainFromEmployeeRetentionCredit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="GainsLossesOnExtinguishmentOfDebt" xlink:title="GainsLossesOnExtinguishmentOfDebt" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NonoperatingIncomeExpense" xlink:to="GainsLossesOnExtinguishmentOfDebt" xlink:title="calculation: NonoperatingIncomeExpense to GainsLossesOnExtinguishmentOfDebt" order="6.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="NonoperatingIncomeExpense" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to NonoperatingIncomeExpense" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="calculation: GrossProfit to RevenueFromContractWithCustomerExcludingAssessedTax" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="GrossProfit" xlink:to="CostOfRevenue" xlink:title="calculation: GrossProfit to CostOfRevenue" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="GrossProfit" xlink:title="calculation: OperatingIncomeLoss to GrossProfit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="GeneralAndAdministrativeExpense" xlink:title="calculation: OperatingExpenses to GeneralAndAdministrativeExpense" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="ResearchAndDevelopmentExpense" xlink:title="calculation: OperatingExpenses to ResearchAndDevelopmentExpense" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="SellingAndMarketingExpense" xlink:title="calculation: OperatingExpenses to SellingAndMarketingExpense" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LitigationSettlementExpense" xlink:label="LitigationSettlementExpense" xlink:title="LitigationSettlementExpense" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingExpenses" xlink:to="LitigationSettlementExpense" xlink:title="calculation: OperatingExpenses to LitigationSettlementExpense" order="4.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="OperatingIncomeLoss" xlink:to="OperatingExpenses" xlink:title="calculation: OperatingIncomeLoss to OperatingExpenses" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="OperatingIncomeLoss" xlink:title="calculation: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to OperatingIncomeLoss" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="calculation: NetIncomeLoss to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetIncomeLoss" xlink:to="IncomeTaxExpenseBenefit" xlink:title="calculation: NetIncomeLoss to IncomeTaxExpenseBenefit" order="2.0" weight="-1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="NetIncomeLoss" xlink:title="calculation: ComprehensiveIncomeNetOfTax to NetIncomeLoss" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="calculation: ComprehensiveIncomeNetOfTax to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="RepaymentsOfLinesOfCredit" xlink:title="RepaymentsOfLinesOfCredit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="RepaymentsOfLinesOfCredit" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to RepaymentsOfLinesOfCredit" order="8.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="ProceedsFromLinesOfCredit" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to ProceedsFromLinesOfCredit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to ProceedsFromStockOptionsExercised" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="4.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfStockIssuanceCosts" xlink:label="PaymentsOfStockIssuanceCosts" xlink:title="PaymentsOfStockIssuanceCosts" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="PaymentsOfStockIssuanceCosts" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to PaymentsOfStockIssuanceCosts" order="6.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="ProceedsFromIssuanceOfCommonStock" xlink:title="ProceedsFromIssuanceOfCommonStock" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="ProceedsFromIssuanceOfCommonStock" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to ProceedsFromIssuanceOfCommonStock" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt" xlink:label="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:title="ProceedsFromIssuanceOfOtherLongTermDebt" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to ProceedsFromIssuanceOfOtherLongTermDebt" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="PaymentsOfLoanCosts" xlink:title="calculation: NetCashProvidedByUsedInFinancingActivities to PaymentsOfLoanCosts" order="9.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInFinancingActivities" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:title="ProceedsFromSaleOfPropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:title="calculation: NetCashProvidedByUsedInInvestingActivities to ProceedsFromSaleOfPropertyPlantAndEquipment" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="calculation: NetCashProvidedByUsedInInvestingActivities to PaymentsToAcquirePropertyPlantAndEquipment" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaymentsForProceedsFromNotesReceivable" xlink:label="PaymentsForProceedsFromNotesReceivable" xlink:title="PaymentsForProceedsFromNotesReceivable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="PaymentsForProceedsFromNotesReceivable" xlink:title="calculation: NetCashProvidedByUsedInInvestingActivities to PaymentsForProceedsFromNotesReceivable" order="2.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInInvestingActivities" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to DeferredIncomeTaxExpenseBenefit" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInOtherOperatingAssets" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInOtherOperatingAssets" order="14.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="20.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="DepreciationAndAmortization" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to DepreciationAndAmortization" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="GainsLossesOnExtinguishmentOfDebt" xlink:title="GainsLossesOnExtinguishmentOfDebt" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="GainsLossesOnExtinguishmentOfDebt" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to GainsLossesOnExtinguishmentOfDebt" order="16.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="NetIncomeLoss" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to NetIncomeLoss" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInInventories" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInInventories" order="12.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="ForeignCurrencyTransactionGainLossBeforeTax" xlink:title="ForeignCurrencyTransactionGainLossBeforeTax" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="ForeignCurrencyTransactionGainLossBeforeTax" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to ForeignCurrencyTransactionGainLossBeforeTax" order="17.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInAccountsPayable" order="15.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="IncreaseDecreaseInReceivables" xlink:title="IncreaseDecreaseInReceivables" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInReceivables" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInReceivables" order="11.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="ShareBasedCompensation" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to ShareBasedCompensation" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInPrepaidTaxes" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInPrepaidTaxes" order="13.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfProperty" xlink:label="GainLossOnSaleOfProperty" xlink:title="GainLossOnSaleOfProperty" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="GainLossOnSaleOfProperty" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to GainLossOnSaleOfProperty" order="6.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:label="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:title="IncreaseDecreaseInEmployeeRetentionCreditReceivable" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:title="calculation: NetCashProvidedByUsedInOperatingActivities to IncreaseDecreaseInEmployeeRetentionCreditReceivable" order="7.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="calculation: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to NetCashProvidedByUsedInOperatingActivities" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityCurrent" order="4.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" order="3.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerLiabilityNoncurrent" order="5.0" weight="-1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerAssetNetCurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerAssetNetCurrent" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="ContractWithCustomerAssetNetNoncurrent" xlink:title="calculation: ContractWithCustomerAssetLiabilityNet to ContractWithCustomerAssetNetNoncurrent" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="calculation: InventoryNet to InventoryRawMaterialsAndSuppliesNetOfReserves" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryFinishedGoodsNetOfReserves" xlink:title="calculation: InventoryNet to InventoryFinishedGoodsNetOfReserves" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="InventoryWorkInProcessNetOfReserves" xlink:title="InventoryWorkInProcessNetOfReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="InventoryNet" xlink:to="InventoryWorkInProcessNetOfReserves" xlink:title="calculation: InventoryNet to InventoryWorkInProcessNetOfReserves" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="TaxesPayableCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to TaxesPayableCurrent" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="AccruedProfessionalFeesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to AccruedProfessionalFeesCurrent" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="EmployeeRelatedLiabilitiesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to EmployeeRelatedLiabilitiesCurrent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="AccruedLiabilitiesCurrent" xlink:to="OtherLiabilitiesCurrent" xlink:title="calculation: AccruedLiabilitiesCurrent to OtherLiabilitiesCurrent" order="4.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="CurrentFederalTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to CurrentFederalTaxExpenseBenefit" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to CurrentStateAndLocalTaxExpenseBenefit" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="CurrentForeignTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to CurrentForeignTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to DeferredFederalIncomeTaxExpenseBenefit" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to DeferredStateAndLocalIncomeTaxExpenseBenefit" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="IncomeTaxExpenseBenefit" xlink:to="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="calculation: IncomeTaxExpenseBenefit to DeferredForeignIncomeTaxExpenseBenefit" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentStateAndLocalTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentForeignTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentForeignTaxExpenseBenefit" order="2.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="CurrentFederalTaxExpenseBenefit" xlink:title="calculation: CurrentIncomeTaxExpenseBenefit to CurrentFederalTaxExpenseBenefit" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredFederalIncomeTaxExpenseBenefit" order="1.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredStateAndLocalIncomeTaxExpenseBenefit" order="0.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="calculation: DeferredIncomeTaxExpenseBenefit to DeferredForeignIncomeTaxExpenseBenefit" order="2.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsInProcessResearchAndDevelopment" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOther" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOther" order="12.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsDeferredIncome" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsDeferredIncome" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsForeign" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsInventory" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsInventory" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" order="10.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" order="9.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsTaxCreditCarryforwardsResearch" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsGross" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="calculation: DeferredTaxAssetsGross to DeferredTaxAssetsOperatingLossCarryforwardsDomestic" order="0.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsNet" xlink:to="DeferredTaxAssetsGross" xlink:title="calculation: DeferredTaxAssetsNet to DeferredTaxAssetsGross" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsNet" xlink:to="DeferredTaxAssetsValuationAllowance" xlink:title="calculation: DeferredTaxAssetsNet to DeferredTaxAssetsValuationAllowance" order="1.0" weight="-1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="DeferredTaxAssetsNet" xlink:title="calculation: DeferredTaxAssetsLiabilitiesNet to DeferredTaxAssetsNet" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxLiabilities" xlink:to="DeferredTaxLiabilitiesOther" xlink:title="calculation: DeferredTaxLiabilities to DeferredTaxLiabilitiesOther" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxLiabilities" xlink:to="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="calculation: DeferredTaxLiabilities to DeferredTaxLiabilitiesPropertyPlantAndEquipment" order="0.0" weight="1.0" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="DeferredTaxLiabilities" xlink:title="calculation: DeferredTaxAssetsLiabilitiesNet to DeferredTaxLiabilities" order="1.0" weight="-1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:label="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:title="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" order="5.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:label="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:title="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" order="6.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationTaxContingencies" order="7.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" order="8.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" order="9.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="calculation: EffectiveIncomeTaxRateContinuingOperations to EffectiveIncomeTaxRateReconciliationOtherAdjustments" order="10.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="calculation: WeightedAverageNumberOfDilutedSharesOutstanding to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="calculation: WeightedAverageNumberOfDilutedSharesOutstanding to WeightedAverageNumberOfSharesOutstandingBasic" order="1.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="3.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="2.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="1.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueYearFive" order="4.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" order="5.0" weight="1.0" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="0.0" weight="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:calculationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="OperatingLeaseLiability" xlink:title="calculation: LesseeOperatingLeaseLiabilityPaymentsDue to OperatingLeaseLiability" order="1.0" weight="1.0" />
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>9
<FILENAME>tact-20221231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 23.3.1.5138 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:t1="http://xbrl.org/2005/xbrldt">
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SubsequentEventsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockRepurchaseProgramDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesComponentsOfIncomeTaxBenefitDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansRestrictedStockDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansStockOptionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansSharebasedCompensationExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansStockIncentivePlansDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/BorrowingsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#BorrowingsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlanDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#RetirementSavingsPlanDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesLeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusinessDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#DescriptionOfBusinessDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleTables" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnauditedTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationTables" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformationTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansTables" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilitiesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetTables" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetTables" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#InventoriesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEvents" xlink:type="simple" xlink:href="tact-20221231.xsd#SubsequentEvents" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrinciple" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrinciple" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnaudited" />
  <link:roleRef roleURI="http://transact-tech.com/role/Leases" xlink:type="simple" xlink:href="tact-20221231.xsd#Leases" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformation" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformation" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="tact-20221231.xsd#StockRepurchaseProgram" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxes" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxes" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlans" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlans" />
  <link:roleRef roleURI="http://transact-tech.com/role/Borrowings" xlink:type="simple" xlink:href="tact-20221231.xsd#Borrowings" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlan" xlink:type="simple" xlink:href="tact-20221231.xsd#RetirementSavingsPlan" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilities" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilities" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNet" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNet" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/Inventories" xlink:type="simple" xlink:href="tact-20221231.xsd#Inventories" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusiness" xlink:type="simple" xlink:href="tact-20221231.xsd#DescriptionOfBusiness" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfChangesInShareholdersEquity" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfComprehensiveLoss" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tact-20221231.xsd#DocumentAndEntityInformation" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" />
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DocumentAndEntityInformation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="definition: StatementLineItems to AssetsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesCurrentAbstract" xlink:title="definition: StatementLineItems to LiabilitiesCurrentAbstract" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="definition: StatementLineItems to ContractWithCustomerLiabilityNoncurrent" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="definition: StatementLineItems to OperatingLeaseLiabilityNoncurrent" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="definition: StatementLineItems to OtherLiabilitiesNoncurrent" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesNoncurrent" xlink:title="definition: StatementLineItems to LiabilitiesNoncurrent" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Liabilities" xlink:title="definition: StatementLineItems to Liabilities" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommitmentsAndContingencies" xlink:title="definition: StatementLineItems to CommitmentsAndContingencies" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquityAbstract" xlink:title="definition: StatementLineItems to StockholdersEquityAbstract" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquity" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquity" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockValue" xlink:title="definition: StatementLineItems to PreferredStockValue" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockValue" xlink:title="definition: StatementLineItems to CommonStockValue" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="definition: StatementLineItems to AdditionalPaidInCapitalCommonStock" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="definition: StatementLineItems to RetainedEarningsAccumulatedDeficit" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="definition: StatementLineItems to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="TreasuryStockValue" xlink:title="definition: StatementLineItems to TreasuryStockValue" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquity" xlink:title="definition: StatementLineItems to StockholdersEquity" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LinesOfCreditCurrent" xlink:title="definition: StatementLineItems to LinesOfCreditCurrent" order="19.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccountsPayableCurrent" xlink:title="definition: StatementLineItems to AccountsPayableCurrent" order="20.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccruedLiabilitiesCurrent" xlink:title="definition: StatementLineItems to AccruedLiabilitiesCurrent" order="21.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="definition: StatementLineItems to OperatingLeaseLiabilityCurrent" order="22.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="definition: StatementLineItems to ContractWithCustomerLiabilityCurrent" order="23.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesCurrent" xlink:title="definition: StatementLineItems to LiabilitiesCurrent" order="24.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsCurrentAbstract" xlink:title="definition: StatementLineItems to AssetsCurrentAbstract" order="25.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: StatementLineItems to PropertyPlantAndEquipmentNet" order="26.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="definition: StatementLineItems to OperatingLeaseRightOfUseAsset" order="27.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Goodwill" xlink:title="definition: StatementLineItems to Goodwill" order="28.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="definition: StatementLineItems to DeferredIncomeTaxAssetsNet" order="29.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="definition: StatementLineItems to IntangibleAssetsNetExcludingGoodwill" order="30.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherAssetsNoncurrent" xlink:title="definition: StatementLineItems to OtherAssetsNoncurrent" order="31.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsNoncurrent" xlink:title="definition: StatementLineItems to AssetsNoncurrent" order="32.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="Assets" xlink:title="definition: StatementLineItems to Assets" order="33.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="definition: StatementLineItems to CashAndCashEquivalentsAtCarryingValue" order="34.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AccountsReceivableNetCurrent" xlink:title="definition: StatementLineItems to AccountsReceivableNetCurrent" order="35.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="NontradeReceivablesCurrent" xlink:title="NontradeReceivablesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="NontradeReceivablesCurrent" xlink:title="definition: StatementLineItems to NontradeReceivablesCurrent" order="36.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="InventoryNet" xlink:title="definition: StatementLineItems to InventoryNet" order="37.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PrepaidTaxes" xlink:title="definition: StatementLineItems to PrepaidTaxes" order="38.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherAssetsCurrent" xlink:title="definition: StatementLineItems to OtherAssetsCurrent" order="39.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AssetsCurrent" xlink:title="definition: StatementLineItems to AssetsCurrent" order="40.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="41.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="definition: StatementTable to StatementClassOfStockAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain_2" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain_2" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="definition: ClassOfStockDomain to SeriesAPreferredStockMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="definition: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquityAbstract" xlink:title="definition: StatementLineItems to StockholdersEquityAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockParOrStatedValuePerShare" xlink:title="definition: StatementLineItems to PreferredStockParOrStatedValuePerShare" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesAuthorized" xlink:title="definition: StatementLineItems to PreferredStockSharesAuthorized" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesIssued" xlink:title="definition: StatementLineItems to PreferredStockSharesIssued" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="PreferredStockSharesOutstanding" xlink:title="definition: StatementLineItems to PreferredStockSharesOutstanding" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockParOrStatedValuePerShare" xlink:title="definition: StatementLineItems to CommonStockParOrStatedValuePerShare" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesAuthorized" xlink:title="definition: StatementLineItems to CommonStockSharesAuthorized" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesIssued" xlink:title="definition: StatementLineItems to CommonStockSharesIssued" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesOutstanding" xlink:title="definition: StatementLineItems to CommonStockSharesOutstanding" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockShares" xlink:label="TreasuryStockShares" xlink:title="TreasuryStockShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="TreasuryStockShares" xlink:title="definition: StatementLineItems to TreasuryStockShares" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="12.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="definition: StatementTable to StatementClassOfStockAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain_2" xlink:title="ClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain_2" xlink:title="definition: StatementClassOfStockAxis to ClassOfStockDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="definition: ClassOfStockDomain to SeriesAPreferredStockMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="definition: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockholdersEquity" xlink:title="definition: StatementLineItems to StockholdersEquity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="CommonStockSharesIssued" xlink:title="definition: StatementLineItems to CommonStockSharesIssued" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueStockOptionsExercised" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesStockOptionsExercised" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="StockIssuedDuringPeriodValueNewIssues" xlink:title="StockIssuedDuringPeriodValueNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodValueNewIssues" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodValueNewIssues" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="StockIssuedDuringPeriodSharesNewIssues" xlink:title="StockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockIssuedDuringPeriodSharesNewIssues" xlink:title="definition: StatementLineItems to StockIssuedDuringPeriodSharesNewIssues" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="definition: StatementLineItems to StockGrantedDuringPeriodValueSharebasedCompensationForfeited" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="definition: StatementLineItems to SharesPaidForTaxWithholdingForShareBasedCompensation" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="definition: StatementLineItems to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="definition: StatementLineItems to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="StatementLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: StatementLineItems to NetIncomeLoss" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="StatementLineItems" xlink:to="StatementTable" xlink:title="definition: StatementLineItems to StatementTable" order="15.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="definition: StatementTable to StatementEquityComponentsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain_2" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain_2" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="CommonStockMember" xlink:title="definition: EquityComponentDomain to CommonStockMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AdditionalPaidInCapitalMember" xlink:title="definition: EquityComponentDomain to AdditionalPaidInCapitalMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="RetainedEarningsMember" xlink:title="definition: EquityComponentDomain to RetainedEarningsMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockMember" xlink:label="TreasuryStockMember" xlink:title="TreasuryStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="TreasuryStockMember" xlink:title="definition: EquityComponentDomain to TreasuryStockMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="definition: EquityComponentDomain to AccumulatedOtherComprehensiveIncomeMember" order="5.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusiness" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Inventories" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNet" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNet" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilities" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlan" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Borrowings" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlans" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxes" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShare" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgram" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformation" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Leases" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrinciple" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEvents" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleTables" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusinessDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentsAbstract" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="DebtInstrumentFaceAmount" xlink:title="DebtInstrumentFaceAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFaceAmount" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFaceAmount" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityMaximumBorrowingCapacity" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentTable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="definition: DebtInstrumentTable to DebtInstrumentAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain_2" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain_2" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaycheckProtectionProgramLoanMember" xlink:label="PaycheckProtectionProgramLoanMember" xlink:title="PaycheckProtectionProgramLoanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentNameDomain" xlink:to="PaycheckProtectionProgramLoanMember" xlink:title="definition: DebtInstrumentNameDomain to PaycheckProtectionProgramLoanMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="definition: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemLineItems" xlink:label="UnusualOrInfrequentItemLineItems" xlink:title="UnusualOrInfrequentItemLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="ExtraordinaryAndUnusualItemsAbstract" xlink:title="ExtraordinaryAndUnusualItemsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="ExtraordinaryAndUnusualItemsAbstract" xlink:title="definition: UnusualOrInfrequentItemLineItems to ExtraordinaryAndUnusualItemsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NumberOfManufacturers" xlink:label="NumberOfManufacturers" xlink:title="NumberOfManufacturers" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="NumberOfManufacturers" xlink:title="definition: UnusualOrInfrequentItemLineItems to NumberOfManufacturers" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInWorkforce" xlink:label="PercentageReductionInWorkforce" xlink:title="PercentageReductionInWorkforce" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="PercentageReductionInWorkforce" xlink:title="definition: UnusualOrInfrequentItemLineItems to PercentageReductionInWorkforce" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInSalaries" xlink:label="PercentageReductionInSalaries" xlink:title="PercentageReductionInSalaries" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="PercentageReductionInSalaries" xlink:title="definition: UnusualOrInfrequentItemLineItems to PercentageReductionInSalaries" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInCashRetainerFees" xlink:label="PercentageReductionInCashRetainerFees" xlink:title="PercentageReductionInCashRetainerFees" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="PercentageReductionInCashRetainerFees" xlink:title="definition: UnusualOrInfrequentItemLineItems to PercentageReductionInCashRetainerFees" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="ProceedsFromIssuanceOfCommonStock" xlink:title="ProceedsFromIssuanceOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="ProceedsFromIssuanceOfCommonStock" xlink:title="definition: UnusualOrInfrequentItemLineItems to ProceedsFromIssuanceOfCommonStock" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="StockIssuedDuringPeriodSharesNewIssues" xlink:title="StockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="StockIssuedDuringPeriodSharesNewIssues" xlink:title="definition: UnusualOrInfrequentItemLineItems to StockIssuedDuringPeriodSharesNewIssues" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_GainFromEmployeeRetentionCredit" xlink:label="GainFromEmployeeRetentionCredit" xlink:title="GainFromEmployeeRetentionCredit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="GainFromEmployeeRetentionCredit" xlink:title="definition: UnusualOrInfrequentItemLineItems to GainFromEmployeeRetentionCredit" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemTable" xlink:label="UnusualOrInfrequentItemTable" xlink:title="UnusualOrInfrequentItemTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="UnusualOrInfrequentItemTable" xlink:title="definition: UnusualOrInfrequentItemLineItems to UnusualOrInfrequentItemTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemAxis" xlink:label="UnusualOrInfrequentItemAxis" xlink:title="UnusualOrInfrequentItemAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="UnusualOrInfrequentItemTable" xlink:to="UnusualOrInfrequentItemAxis" xlink:title="definition: UnusualOrInfrequentItemTable to UnusualOrInfrequentItemAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemDomain" xlink:label="UnusualOrInfrequentItemDomain" xlink:title="UnusualOrInfrequentItemDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="UnusualOrInfrequentItemAxis" xlink:to="UnusualOrInfrequentItemDomain" xlink:title="definition: UnusualOrInfrequentItemAxis to UnusualOrInfrequentItemDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemDomain" xlink:label="UnusualOrInfrequentItemDomain_2" xlink:title="UnusualOrInfrequentItemDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="UnusualOrInfrequentItemAxis" xlink:to="UnusualOrInfrequentItemDomain_2" xlink:title="definition: UnusualOrInfrequentItemAxis to UnusualOrInfrequentItemDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_Covid19Member" xlink:label="Covid19Member" xlink:title="Covid19Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="UnusualOrInfrequentItemDomain" xlink:to="Covid19Member" xlink:title="definition: UnusualOrInfrequentItemDomain to Covid19Member" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentAbstract" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentUsefulLife" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="Depreciation" xlink:title="definition: PropertyPlantAndEquipmentLineItems to Depreciation" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ScheduleOfPropertyPlantAndEquipmentTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ToolsDiesAndMoldsMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ToolsDiesAndMoldsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="AssetsAndLiabilitiesLesseeAbstract" xlink:title="definition: LesseeLeaseDescriptionLineItems to AssetsAndLiabilitiesLesseeAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="definition: LesseeLeaseDescriptionLineItems to IncreaseDecreaseInOperatingLeaseRightOfUseAsset" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="definition: LesseeLeaseDescriptionLineItems to IncreaseDecreaseInOperatingLeaseLiability" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="definition: LesseeLeaseDescriptionLineItems to LesseeOperatingLeaseRemainingLeaseTerm" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="LesseeOperatingLeaseRenewalTerm" xlink:title="LesseeOperatingLeaseRenewalTerm" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="LesseeOperatingLeaseRenewalTerm" xlink:title="definition: LesseeLeaseDescriptionLineItems to LesseeOperatingLeaseRenewalTerm" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="LesseeLeaseDescriptionTable" xlink:title="definition: LesseeLeaseDescriptionLineItems to LesseeLeaseDescriptionTable" order="6.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="LesseeLeaseDescriptionTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: LesseeLeaseDescriptionTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember" xlink:label="BuildingMember" xlink:title="BuildingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="BuildingMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to BuildingMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInLasVegasNevadaMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FacilityInLasVegasNevadaMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInHamdenConnecticutMember" xlink:label="FacilityInHamdenConnecticutMember" xlink:title="FacilityInHamdenConnecticutMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInHamdenConnecticutMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FacilityInHamdenConnecticutMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="LesseeLeaseDescriptionTable" xlink:to="RangeAxis" xlink:title="definition: LesseeLeaseDescriptionTable to RangeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: DisaggregationOfRevenueLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueTable" xlink:title="definition: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="ProductOrServiceAxis" xlink:title="definition: DisaggregationOfRevenueTable to ProductOrServiceAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain_2" xlink:title="ProductsAndServicesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain_2" xlink:title="definition: ProductOrServiceAxis to ProductsAndServicesDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="FoodServiceTechnologyMember" xlink:title="definition: ProductsAndServicesDomain to FoodServiceTechnologyMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="PosAutomationAndBankingMember" xlink:title="definition: ProductsAndServicesDomain to PosAutomationAndBankingMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="CasinoAndGamingMember" xlink:title="definition: ProductsAndServicesDomain to CasinoAndGamingMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LotteryMember" xlink:label="LotteryMember" xlink:title="LotteryMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="LotteryMember" xlink:title="definition: ProductsAndServicesDomain to LotteryMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PrintrexMember" xlink:label="PrintrexMember" xlink:title="PrintrexMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="PrintrexMember" xlink:title="definition: ProductsAndServicesDomain to PrintrexMember" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductsAndServicesDomain" xlink:to="TransactServicesGroupMember" xlink:title="definition: ProductsAndServicesDomain to TransactServicesGroupMember" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="definition: SegmentGeographicalDomain to InternationalMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligation" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetailsDefault">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligation" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="definition: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskLineItems" xlink:to="RisksAndUncertaintiesAbstract" xlink:title="definition: ConcentrationRiskLineItems to RisksAndUncertaintiesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskLineItems" xlink:to="ConcentrationRiskPercentage1" xlink:title="definition: ConcentrationRiskLineItems to ConcentrationRiskPercentage1" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ConcentrationRiskLineItems" xlink:to="ConcentrationRiskTable" xlink:title="definition: ConcentrationRiskLineItems to ConcentrationRiskTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="definition: ConcentrationRiskTable to ConcentrationRiskByBenchmarkAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain_2" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain_2" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="AccountsReceivableMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to AccountsReceivableMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="definition: ConcentrationRiskTable to ConcentrationRiskByTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain_2" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain_2" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskTypeDomain" xlink:to="CustomerConcentrationRiskMember" xlink:title="definition: ConcentrationRiskTypeDomain to CustomerConcentrationRiskMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ConcentrationRiskTable" xlink:to="MajorCustomersAxis" xlink:title="definition: ConcentrationRiskTable to MajorCustomersAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain" xlink:title="definition: MajorCustomersAxis to NameOfMajorCustomerDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain_2" xlink:title="NameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain_2" xlink:title="definition: MajorCustomersAxis to NameOfMajorCustomerDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ScientificGamesMember" xlink:label="ScientificGamesMember" xlink:title="ScientificGamesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="ScientificGamesMember" xlink:title="definition: NameOfMajorCustomerDomain to ScientificGamesMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="InternationalGameTechnologyPlcMember" xlink:title="definition: NameOfMajorCustomerDomain to InternationalGameTechnologyPlcMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NcrCorporationMember" xlink:label="NcrCorporationMember" xlink:title="NcrCorporationMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="NcrCorporationMember" xlink:title="definition: NameOfMajorCustomerDomain to NcrCorporationMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TheBrightGroupMember" xlink:label="TheBrightGroupMember" xlink:title="TheBrightGroupMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NameOfMajorCustomerDomain" xlink:to="TheBrightGroupMember" xlink:title="definition: NameOfMajorCustomerDomain to TheBrightGroupMember" order="4.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityLineItems" xlink:label="ProductWarrantyLiabilityLineItems" xlink:title="ProductWarrantyLiabilityLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyDisclosureAbstract" xlink:label="ExtendedProductWarrantyDisclosureAbstract" xlink:title="ExtendedProductWarrantyDisclosureAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyDisclosureAbstract" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyDisclosureAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ExtendedProductWarrantyPeriod" xlink:label="ExtendedProductWarrantyPeriod" xlink:title="ExtendedProductWarrantyPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyPeriod" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyPeriod" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInExtendedProductWarrantyAccrualRollForward" xlink:label="MovementInExtendedProductWarrantyAccrualRollForward" xlink:title="MovementInExtendedProductWarrantyAccrualRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="MovementInExtendedProductWarrantyAccrualRollForward" xlink:title="definition: ProductWarrantyLiabilityLineItems to MovementInExtendedProductWarrantyAccrualRollForward" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="ExtendedProductWarrantyAccrualCurrent" xlink:title="ExtendedProductWarrantyAccrualCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyAccrualCurrent" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyAccrualCurrent" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualNoncurrent" xlink:label="ExtendedProductWarrantyAccrualNoncurrent" xlink:title="ExtendedProductWarrantyAccrualNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyAccrualNoncurrent" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyAccrualNoncurrent" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="ExtendedProductWarrantyAccrual" xlink:title="ExtendedProductWarrantyAccrual" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyAccrual" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyAccrual" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:label="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:title="ExtendedProductWarrantyAccrualWarrantiesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyAccrualWarrantiesIssued" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualPayments" xlink:label="ExtendedProductWarrantyAccrualPayments" xlink:title="ExtendedProductWarrantyAccrualPayments" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyAccrualPayments" xlink:title="definition: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyAccrualPayments" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityTable" xlink:label="ProductWarrantyLiabilityTable" xlink:title="ProductWarrantyLiabilityTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ProductWarrantyLiabilityTable" xlink:title="definition: ProductWarrantyLiabilityLineItems to ProductWarrantyLiabilityTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ProductWarrantyLiabilityTable" xlink:to="RangeAxis" xlink:title="definition: ProductWarrantyLiabilityTable to RangeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ProductWarrantyLiabilityTable" xlink:to="BalanceSheetLocationAxis" xlink:title="definition: ProductWarrantyLiabilityTable to BalanceSheetLocationAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain" xlink:title="definition: BalanceSheetLocationAxis to BalanceSheetLocationDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain_2" xlink:title="BalanceSheetLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain_2" xlink:title="definition: BalanceSheetLocationAxis to BalanceSheetLocationDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesMember" xlink:label="OtherLiabilitiesMember" xlink:title="OtherLiabilitiesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="BalanceSheetLocationDomain" xlink:to="OtherLiabilitiesMember" xlink:title="definition: BalanceSheetLocationDomain to OtherLiabilitiesMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetByTypeAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentGross" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="definition: PropertyPlantAndEquipmentLineItems to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNet" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="definition: PropertyPlantAndEquipmentLineItems to ScheduleOfPropertyPlantAndEquipmentTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="definition: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain_2" xlink:title="definition: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="LeaseholdImprovementsMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to LeaseholdImprovementsMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FixedAssetsExcludingConstructionInProcessMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to FixedAssetsExcludingConstructionInProcessMember" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConstructionInProgressMember" xlink:label="ConstructionInProgressMember" xlink:title="ConstructionInProgressMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ConstructionInProgressMember" xlink:title="definition: PropertyPlantAndEquipmentTypeDomain to ConstructionInProgressMember" order="6.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AmortizationOfIntangibleAssets" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to AmortizationOfIntangibleAssets" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:title="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:label="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:title="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsGross" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsGross" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="definition: FiniteLivedIntangibleAssetsLineItems to ScheduleOfFiniteLivedIntangibleAssetsTable" order="10.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="definition: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain_2" xlink:title="definition: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TechnologyBasedIntangibleAssetsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to TechnologyBasedIntangibleAssetsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="CustomerRelationshipsMember" xlink:title="CustomerRelationshipsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="CustomerRelationshipsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to CustomerRelationshipsMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember" xlink:label="TrademarksMember" xlink:title="TrademarksMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TrademarksMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to TrademarksMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="NoncompeteAgreementsMember" xlink:title="NoncompeteAgreementsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="NoncompeteAgreementsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to NoncompeteAgreementsMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="PatentsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to PatentsMember" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="OtherIntangibleAssetsMember" xlink:title="OtherIntangibleAssetsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="OtherIntangibleAssetsMember" xlink:title="definition: FiniteLivedIntangibleAssetsMajorClassNameDomain to OtherIntangibleAssetsMember" order="6.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlanDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/BorrowingsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityAbstract" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityMaximumBorrowingCapacity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentBasisSpreadOnVariableRate1" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentInterestRateStatedPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentInterestRateStatedPercentage" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DeferredFinanceCostsGross" xlink:title="definition: DebtInstrumentLineItems to DeferredFinanceCostsGross" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleAccountsReceivable" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventory" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="SecuredDebt" xlink:title="definition: DebtInstrumentLineItems to SecuredDebt" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="definition: DebtInstrumentLineItems to LineOfCreditFacilityRemainingBorrowingCapacity" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:label="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:title="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="DebtInstrumentFaceAmount" xlink:title="DebtInstrumentFaceAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentFaceAmount" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentFaceAmount" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentDecreaseForgiveness" xlink:label="DebtInstrumentDecreaseForgiveness" xlink:title="DebtInstrumentDecreaseForgiveness" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentDecreaseForgiveness" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentDecreaseForgiveness" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentTable" xlink:title="definition: DebtInstrumentLineItems to DebtInstrumentTable" order="19.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="definition: DebtInstrumentTable to DebtInstrumentAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain_2" xlink:title="DebtInstrumentNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain_2" xlink:title="definition: DebtInstrumentAxis to DebtInstrumentNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="definition: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaycheckProtectionProgramLoanMember" xlink:label="PaycheckProtectionProgramLoanMember" xlink:title="PaycheckProtectionProgramLoanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DebtInstrumentNameDomain" xlink:to="PaycheckProtectionProgramLoanMember" xlink:title="definition: DebtInstrumentNameDomain to PaycheckProtectionProgramLoanMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="VariableRateAxis" xlink:title="definition: DebtInstrumentTable to VariableRateAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="definition: VariableRateAxis to VariableRateDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain_2" xlink:title="VariableRateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain_2" xlink:title="definition: VariableRateAxis to VariableRateDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="VariableRateDomain" xlink:to="PrimeRateMember" xlink:title="definition: VariableRateDomain to PrimeRateMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="VariableRateDomain" xlink:to="FederalFundsEffectiveSwapRateMember" xlink:title="definition: VariableRateDomain to FederalFundsEffectiveSwapRateMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="DebtInstrumentTable" xlink:to="RangeAxis" xlink:title="definition: DebtInstrumentTable to RangeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="8.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="definition: RangeAxis to RangeMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember_2" xlink:title="RangeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RangeAxis" xlink:to="RangeMember_2" xlink:title="definition: RangeAxis to RangeMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="definition: RangeMember to MinimumMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="definition: RangeMember to MaximumMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="9.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ShareBasedCompensationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to AllocatedShareBasedCompensationExpense" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="definition: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="IncomeStatementLocationAxis" xlink:title="definition: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to IncomeStatementLocationAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain_2" xlink:title="IncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain_2" xlink:title="definition: IncomeStatementLocationAxis to IncomeStatementLocationDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeStatementLocationDomain" xlink:to="GeneralAndAdministrativeExpenseMember" xlink:title="definition: IncomeStatementLocationDomain to GeneralAndAdministrativeExpenseMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsAggregateIntrinsicValueAbstract" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsWeightedAverageRemainingContractualTermAbstract" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ProceedsFromStockOptionsExercised" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" order="14.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" order="15.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" order="16.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" order="17.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" order="18.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="19.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="20.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" order="21.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="22.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" order="23.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="24.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" order="25.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" order="26.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" order="27.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" order="28.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="29.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="30.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="31.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="32.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="33.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="34.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="35.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="36.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="37.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to StockIssuedDuringPeriodSharesStockOptionsExercised" order="38.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="39.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" order="40.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" order="41.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="42.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="definition: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="43.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="definition: PlanNameAxis to PlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain_2" xlink:title="PlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain_2" xlink:title="definition: PlanNameAxis to PlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="definition: PlanNameDomain to EquityIncentivePlan2005AndEquityIncentivePlan2014Member" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="definition: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" xlink:title="definition: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="definition: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementsAbstract" xlink:label="DeferredCompensationArrangementsAbstract" xlink:title="DeferredCompensationArrangementsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementsAbstract" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued" xlink:label="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:title="DeferredCompensationArrangementWithIndividualSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementWithIndividualSharesIssued" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:label="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:title="DeferredCompensationArrangementWithIndividualCompensationExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementWithIndividualCompensationExpense" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:title="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice" xlink:label="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:title="DeferredCompensationArrangementWithIndividualExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementWithIndividualExercisePrice" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:label="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:title="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" order="6.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:to="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:title="definition: ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable to DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:label="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:title="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:to="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis to EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:label="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_2" xlink:title="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:to="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_2" xlink:title="definition: DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis to EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationShareBasedPaymentsMember" xlink:label="DeferredCompensationShareBasedPaymentsMember" xlink:title="DeferredCompensationShareBasedPaymentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:to="DeferredCompensationShareBasedPaymentsMember" xlink:title="definition: EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain to DeferredCompensationShareBasedPaymentsMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="definition: OperatingLossCarryforwardsLineItems to IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsNotSubjectToExpiration" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsSubjectToExpiration" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="definition: OperatingLossCarryforwardsLineItems to TaxCreditCarryforwardAmountSubjectToExpiration" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="TaxCreditCarryforwardExpirationPeriod" xlink:title="definition: OperatingLossCarryforwardsLineItems to TaxCreditCarryforwardExpirationPeriod" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="definition: OperatingLossCarryforwardsLineItems to IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="OperatingLossCarryforwardsTable" xlink:title="definition: OperatingLossCarryforwardsLineItems to OperatingLossCarryforwardsTable" order="7.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="OperatingLossCarryforwardsTable" xlink:to="TaxCreditCarryforwardAxis" xlink:title="definition: OperatingLossCarryforwardsTable to TaxCreditCarryforwardAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain" xlink:title="definition: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain_2" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain_2" xlink:title="definition: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="ResearchMember" xlink:title="definition: TaxCreditCarryforwardNameDomain to ResearchMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="OperatingLossCarryforwardsTable" xlink:to="IncomeTaxAuthorityAxis" xlink:title="definition: OperatingLossCarryforwardsTable to IncomeTaxAuthorityAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain_2" xlink:title="IncomeTaxAuthorityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain_2" xlink:title="definition: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeTaxAuthorityDomain" xlink:to="DomesticCountryMember" xlink:title="definition: IncomeTaxAuthorityDomain to DomesticCountryMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="IncomeTaxAuthorityDomain" xlink:to="StateAndLocalJurisdictionMember" xlink:title="definition: IncomeTaxAuthorityDomain to StateAndLocalJurisdictionMember" order="2.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="MovementInValuationAllowancesAndReservesRollForward" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to MovementInValuationAllowancesAndReservesRollForward" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAllowancesAndReservesBalance" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAllowancesAndReservesBalance" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="ValuationAllowancesAndReservesDeductions" xlink:title="ValuationAllowancesAndReservesDeductions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAllowancesAndReservesDeductions" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAllowancesAndReservesDeductions" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAllowancesAndReservesChargedToCostAndExpense" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureLineItems to ValuationAndQualifyingAccountsDisclosureTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAllowancesAndReservesTypeAxis" xlink:title="definition: ValuationAndQualifyingAccountsDisclosureTable to ValuationAllowancesAndReservesTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain" xlink:title="definition: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain_2" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain_2" xlink:title="definition: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember" xlink:label="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:title="ValuationAllowanceOperatingLossCarryforwardsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:title="definition: ValuationAllowancesAndReservesDomain to ValuationAllowanceOperatingLossCarryforwardsMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="EarningsPerShareReconciliationAbstract" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to EarningsPerShareReconciliationAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="definition: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain_2" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain_2" xlink:title="definition: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="StockCompensationPlanMember" xlink:title="definition: AntidilutiveSecuritiesNameDomain to StockCompensationPlanMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgramDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="SegmentsGeographicalAreasAbstract" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to SegmentsGeographicalAreasAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to RevenueFromContractWithCustomerExcludingAssessedTax" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to PropertyPlantAndEquipmentNet" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="ConcentrationRiskPercentage1" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to ConcentrationRiskPercentage1" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="definition: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConsolidationItemsAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConsolidationItemsAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain_2" xlink:title="ConsolidationItemsDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain_2" xlink:title="definition: ConsolidationItemsAxis to ConsolidationItemsDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConsolidationItemsDomain" xlink:to="ReportableGeographicalComponentsMember" xlink:title="definition: ConsolidationItemsDomain to ReportableGeographicalComponentsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByBenchmarkAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain_2" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain_2" xlink:title="definition: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="definition: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByTypeAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain_2" xlink:title="ConcentrationRiskTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain_2" xlink:title="definition: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="definition: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="StatementGeographicalAxis" xlink:title="definition: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to StatementGeographicalAxis" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain_2" xlink:title="SegmentGeographicalDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain_2" xlink:title="definition: StatementGeographicalAxis to SegmentGeographicalDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="definition: SegmentGeographicalDomain to US" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="definition: SegmentGeographicalDomain to InternationalMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="EuropeMember" xlink:title="definition: SegmentGeographicalDomain to EuropeMember" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="PacificRimMember" xlink:title="definition: SegmentGeographicalDomain to PacificRimMember" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="definition: SegmentGeographicalDomain to CA" order="5.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfFinancialPositionAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfFinancialPositionAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="InventoryNet" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to InventoryNet" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to DeferredIncomeTaxAssetsNet" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to RetainedEarningsAccumulatedDeficit" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="definition: RestatementAxis to RestatementDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain_2" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestatementAxis" xlink:to="RestatementDomain_2" xlink:title="definition: RestatementAxis to RestatementDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="definition: RestatementDomain to ScenarioPreviouslyReportedMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="definition: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember_2" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember_2" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="definition: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="IncomeStatementAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to IncomeStatementAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="CostOfRevenue" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to CostOfRevenue" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="GrossProfit" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to GrossProfit" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="OperatingIncomeLoss" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to OperatingIncomeLoss" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="5.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="IncomeTaxExpenseBenefit" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to IncomeTaxExpenseBenefit" order="6.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NetIncomeLoss" order="7.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="EarningsPerShareAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to EarningsPerShareAbstract" order="8.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to EarningsPerShareBasicOtherDisclosuresAbstract" order="9.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to WeightedAverageNumberOfSharesOutstandingBasic" order="10.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to WeightedAverageNumberOfDilutedSharesOutstanding" order="11.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="EarningsPerShareBasic" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to EarningsPerShareBasic" order="12.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="EarningsPerShareDiluted" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to EarningsPerShareDiluted" order="13.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="14.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="definition: RestatementAxis to RestatementDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain_2" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestatementAxis" xlink:to="RestatementDomain_2" xlink:title="definition: RestatementAxis to RestatementDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="definition: RestatementDomain to ScenarioPreviouslyReportedMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="definition: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember_2" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember_2" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="definition: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfIncomeAndComprehensiveIncomeAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NetIncomeLoss" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="ComprehensiveIncomeNetOfTax" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to ComprehensiveIncomeNetOfTax" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="definition: RestatementAxis to RestatementDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain_2" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestatementAxis" xlink:to="RestatementDomain_2" xlink:title="definition: RestatementAxis to RestatementDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="definition: RestatementDomain to ScenarioPreviouslyReportedMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="definition: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember_2" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember_2" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="definition: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfCashFlowsAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfCashFlowsAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NetIncomeLoss" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to DeferredIncomeTaxExpenseBenefit" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="IncreaseDecreaseInInventories" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to IncreaseDecreaseInInventories" order="4.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="5.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="definition: RestatementAxis to RestatementDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain_2" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestatementAxis" xlink:to="RestatementDomain_2" xlink:title="definition: RestatementAxis to RestatementDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="definition: RestatementDomain to ScenarioPreviouslyReportedMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="definition: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember_2" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember_2" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="definition: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfStockholdersEquityAbstract" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfStockholdersEquityAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StockholdersEquity" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StockholdersEquity" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NetIncomeLoss" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NetIncomeLoss" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="4.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="definition: RestatementAxis to RestatementDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain_2" xlink:title="RestatementDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="RestatementAxis" xlink:to="RestatementDomain_2" xlink:title="definition: RestatementAxis to RestatementDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="definition: RestatementDomain to ScenarioPreviouslyReportedMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="definition: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="StatementEquityComponentsAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to StatementEquityComponentsAxis" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain_2" xlink:title="EquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain_2" xlink:title="definition: StatementEquityComponentsAxis to EquityComponentDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="EquityComponentDomain" xlink:to="RetainedEarningsMember" xlink:title="definition: EquityComponentDomain to RetainedEarningsMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="definition: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="3.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember_2" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember_2" xlink:title="definition: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="definition: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="1.0" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEventsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventLineItems" xlink:label="SubsequentEventLineItems" xlink:title="SubsequentEventLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EmployeeRetentionCreditReceivableAbstract" xlink:label="EmployeeRetentionCreditReceivableAbstract" xlink:title="EmployeeRetentionCreditReceivableAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SubsequentEventLineItems" xlink:to="EmployeeRetentionCreditReceivableAbstract" xlink:title="definition: SubsequentEventLineItems to EmployeeRetentionCreditReceivableAbstract" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ProceedsFromEmployeeRetentionCredit" xlink:label="ProceedsFromEmployeeRetentionCredit" xlink:title="ProceedsFromEmployeeRetentionCredit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SubsequentEventLineItems" xlink:to="ProceedsFromEmployeeRetentionCredit" xlink:title="definition: SubsequentEventLineItems to ProceedsFromEmployeeRetentionCredit" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTable" xlink:label="SubsequentEventTable" xlink:title="SubsequentEventTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="SubsequentEventLineItems" xlink:to="SubsequentEventTable" xlink:title="definition: SubsequentEventLineItems to SubsequentEventTable" order="3.0" t1:closed="true" t1:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="SubsequentEventTypeAxis" xlink:title="SubsequentEventTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="SubsequentEventTable" xlink:to="SubsequentEventTypeAxis" xlink:title="definition: SubsequentEventTable to SubsequentEventTypeAxis" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain" xlink:title="SubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="SubsequentEventTypeAxis" xlink:to="SubsequentEventTypeDomain" xlink:title="definition: SubsequentEventTypeAxis to SubsequentEventTypeDomain" order="1.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain_2" xlink:title="SubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="SubsequentEventTypeAxis" xlink:to="SubsequentEventTypeDomain_2" xlink:title="definition: SubsequentEventTypeAxis to SubsequentEventTypeDomain_2" order="2.0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="SubsequentEventMember" xlink:title="SubsequentEventMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="SubsequentEventTypeDomain" xlink:to="SubsequentEventMember" xlink:title="definition: SubsequentEventTypeDomain to SubsequentEventMember" order="1.0" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>10
<FILENAME>tact-20221231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 23.3.1.5138 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AwardTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AwardTypeAxis_lbl" xml:lang="en-US" id="us-gaap_AwardTypeAxis_lbl">Award Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl" xlink:title="label: AwardTypeAxis to us-gaap_AwardTypeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountingPoliciesAbstract_lbl" xml:lang="en-US" id="us-gaap_AccountingPoliciesAbstract_lbl">Summary of significant accounting policies [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl" xlink:title="label: AccountingPoliciesAbstract to us-gaap_AccountingPoliciesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl" xml:lang="en-US" id="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl">Change in accounting principle [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl" xlink:title="label: AccountingChangesAndErrorCorrectionsAbstract to us-gaap_AccountingChangesAndErrorCorrectionsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableCurrent_lbl" xml:lang="en-US" id="us-gaap_AccountsPayableCurrent_lbl">Accounts payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl" xlink:title="label: AccountsPayableCurrent to us-gaap_AccountsPayableCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" xlink:title="label: AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock to us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" xlink:title="label: AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock to us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:label="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract_lbl" xml:lang="en-US" id="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract_lbl">Allowance for doubtful accounts [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:to="us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract_lbl" xlink:title="label: AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract to us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsReceivableMember_lbl" xml:lang="en-US" id="us-gaap_AccountsReceivableMember_lbl">Accounts Receivable [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl" xlink:title="label: AccountsReceivableMember to us-gaap_AccountsReceivableMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccountsReceivableNetCurrent_lbl" xml:lang="en-US" id="us-gaap_AccountsReceivableNetCurrent_lbl">Accounts receivable, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:title="label: AccountsReceivableNetCurrent to us-gaap_AccountsReceivableNetCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccruedProfessionalFeesCurrent_lbl" xml:lang="en-US" id="us-gaap_AccruedProfessionalFeesCurrent_lbl">Professional and consulting</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_lbl" xlink:title="label: AccruedProfessionalFeesCurrent to us-gaap_AccruedProfessionalFeesCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccruedLiabilitiesCurrent_lbl" xml:lang="en-US" id="us-gaap_AccruedLiabilitiesCurrent_lbl">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl" xlink:title="label: AccruedLiabilitiesCurrent to us-gaap_AccruedLiabilitiesCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AccruedLiabilitiesCurrent_lbl1" xml:lang="en-US" id="us-gaap_AccruedLiabilitiesCurrent_lbl1">Accrued liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent_lbl1" xlink:title="label: AccruedLiabilitiesCurrent to us-gaap_AccruedLiabilitiesCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl">Less: Accumulated depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" xlink:title="label: AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment to us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl">Accumulated Other Comprehensive Income (Loss) [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:title="label: AccumulatedOtherComprehensiveIncomeMember to us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1">AOCI Attributable to Parent [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" xlink:title="label: AccumulatedOtherComprehensiveIncomeMember to us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xml:lang="en-US" id="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl">Accumulated other comprehensive (loss) income, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:title="label: AccumulatedOtherComprehensiveIncomeLossNetOfTax to us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapitalMember_lbl" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapitalMember_lbl">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:title="label: AdditionalPaidInCapitalMember to us-gaap_AdditionalPaidInCapitalMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xml:lang="en-US" id="us-gaap_AdditionalPaidInCapitalCommonStock_lbl">Additional paid-in capital</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:title="label: AdditionalPaidInCapitalCommonStock to us-gaap_AdditionalPaidInCapitalCommonStock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" id="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl">Adjustments to reconcile net loss to net cash used in operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:title="label: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" xml:lang="en-US" id="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl">Change in Accounting Principle, Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" xlink:title="label: AdjustmentsForChangeInAccountingPrincipleAxis to us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xml:lang="en-US" id="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" xlink:title="label: AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue to us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense" xlink:label="AdvertisingExpense" xlink:title="AdvertisingExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdvertisingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdvertisingExpense_lbl" xml:lang="en-US" id="us-gaap_AdvertisingExpense_lbl">Advertising expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdvertisingExpense" xlink:to="us-gaap_AdvertisingExpense_lbl" xlink:title="label: AdvertisingExpense to us-gaap_AdvertisingExpense_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="AdvertisingCostsPolicyTextBlock" xlink:title="AdvertisingCostsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AdvertisingCostsPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_AdvertisingCostsPolicyTextBlock_lbl">Advertising</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AdvertisingCostsPolicyTextBlock" xlink:to="us-gaap_AdvertisingCostsPolicyTextBlock_lbl" xlink:title="label: AdvertisingCostsPolicyTextBlock to us-gaap_AdvertisingCostsPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense_lbl">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_AllocatedShareBasedCompensationExpense_lbl1">Share-Based Payment Arrangement, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl1" xlink:title="label: AllocatedShareBasedCompensationExpense to us-gaap_AllocatedShareBasedCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl">Balance, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl1" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl1">Balance, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl1" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl2" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl2">Accounts Receivable, Allowance for Credit Loss, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl2" xlink:title="label: AllowanceForDoubtfulAccountsReceivableCurrent to us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl">Deductions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" xlink:title="label: AllowanceForDoubtfulAccountsReceivableWriteOffs to us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1">Accounts Receivable, Allowance for Credit Loss, Writeoff</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" xlink:title="label: AllowanceForDoubtfulAccountsReceivableWriteOffs to us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="AllowanceForDoubtfulAccountsReceivableRollforward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xml:lang="en-US" id="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl">Allowance for doubtful accounts [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" xlink:title="label: AllowanceForDoubtfulAccountsReceivableRollforward to us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AmortizationOfIntangibleAssets_lbl" xml:lang="en-US" id="us-gaap_AmortizationOfIntangibleAssets_lbl">Amortization expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:title="label: AmortizationOfIntangibleAssets to us-gaap_AmortizationOfIntangibleAssets_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl">Antidilutive Securities [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesNameDomain_lbl">Antidilutive Securities, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xlink:title="label: AntidilutiveSecuritiesNameDomain to us-gaap_AntidilutiveSecuritiesNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl">Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xml:lang="en-US" id="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xlink:title="label: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsAbstract_lbl" xml:lang="en-US" id="us-gaap_AssetsAbstract_lbl">Assets:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl" xlink:title="label: AssetsAbstract to us-gaap_AssetsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xml:lang="en-US" id="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl">Leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" xlink:title="label: AssetsAndLiabilitiesLesseeAbstract to us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xml:lang="en-US" id="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1">Assets and Liabilities, Lessee [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" xlink:title="label: AssetsAndLiabilitiesLesseeAbstract to us-gaap_AssetsAndLiabilitiesLesseeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_Assets_lbl" xml:lang="en-US" id="us-gaap_Assets_lbl">Total assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets_lbl" xlink:title="label: Assets to us-gaap_Assets_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Assets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Assets_lbl1" xml:lang="en-US" id="us-gaap_Assets_lbl1">Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Assets" xlink:to="us-gaap_Assets_lbl1" xlink:title="label: Assets to us-gaap_Assets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AssetsCurrent_lbl" xml:lang="en-US" id="us-gaap_AssetsCurrent_lbl">Total current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrent_lbl1" xml:lang="en-US" id="us-gaap_AssetsCurrent_lbl1">Assets, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl1" xlink:title="label: AssetsCurrent to us-gaap_AssetsCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_AssetsNoncurrent_lbl" xml:lang="en-US" id="us-gaap_AssetsNoncurrent_lbl">Total noncurrent assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsNoncurrent" xlink:to="us-gaap_AssetsNoncurrent_lbl" xlink:title="label: AssetsNoncurrent to us-gaap_AssetsNoncurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_AssetsNoncurrent_lbl1">Assets, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsNoncurrent" xlink:to="us-gaap_AssetsNoncurrent_lbl1" xlink:title="label: AssetsNoncurrent to us-gaap_AssetsNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_AssetsCurrentAbstract_lbl" xml:lang="en-US" id="us-gaap_AssetsCurrentAbstract_lbl">Current assets:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl" xlink:title="label: AssetsCurrentAbstract to us-gaap_AssetsCurrentAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BalanceSheetLocationDomain_lbl" xml:lang="en-US" id="us-gaap_BalanceSheetLocationDomain_lbl">Balance Sheet Location [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain_lbl" xlink:title="label: BalanceSheetLocationDomain to us-gaap_BalanceSheetLocationDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BalanceSheetLocationAxis_lbl" xml:lang="en-US" id="us-gaap_BalanceSheetLocationAxis_lbl">Balance Sheet Location [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis_lbl" xlink:title="label: BalanceSheetLocationAxis to us-gaap_BalanceSheetLocationAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xml:lang="en-US" id="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl">Summary of significant accounting policies</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" xlink:title="label: BasisOfPresentationAndSignificantAccountingPoliciesTextBlock to us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1">Basis of Presentation and Significant Accounting Policies [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" xlink:title="label: BasisOfPresentationAndSignificantAccountingPoliciesTextBlock to us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember" xlink:label="BuildingMember" xlink:title="BuildingMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BuildingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_BuildingMember_lbl" xml:lang="en-US" id="us-gaap_BuildingMember_lbl">Facility in Ithaca, New York [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BuildingMember" xlink:to="us-gaap_BuildingMember_lbl" xlink:title="label: BuildingMember to us-gaap_BuildingMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_BuildingMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_BuildingMember_lbl1" xml:lang="en-US" id="us-gaap_BuildingMember_lbl1">Building [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="BuildingMember" xlink:to="us-gaap_BuildingMember_lbl1" xlink:title="label: BuildingMember to us-gaap_BuildingMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="CapitalExpendituresIncurredButNotYetPaid" xlink:title="CapitalExpendituresIncurredButNotYetPaid" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CapitalExpendituresIncurredButNotYetPaid_lbl" xml:lang="en-US" id="us-gaap_CapitalExpendituresIncurredButNotYetPaid_lbl">Non-cash capital expenditure items</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CapitalExpendituresIncurredButNotYetPaid" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid_lbl" xlink:title="label: CapitalExpendituresIncurredButNotYetPaid to us-gaap_CapitalExpendituresIncurredButNotYetPaid_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="CapitalizedComputerSoftwareNet" xlink:title="CapitalizedComputerSoftwareNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CapitalizedComputerSoftwareNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CapitalizedComputerSoftwareNet_lbl" xml:lang="en-US" id="us-gaap_CapitalizedComputerSoftwareNet_lbl">Unamortized development costs of software</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CapitalizedComputerSoftwareNet" xlink:to="us-gaap_CapitalizedComputerSoftwareNet_lbl" xlink:title="label: CapitalizedComputerSoftwareNet to us-gaap_CapitalizedComputerSoftwareNet_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="CapitalizedComputerSoftwareAmortization1" xlink:title="CapitalizedComputerSoftwareAmortization1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl" xml:lang="en-US" id="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl">Amortization of capitalized software development costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CapitalizedComputerSoftwareAmortization1" xlink:to="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl" xlink:title="label: CapitalizedComputerSoftwareAmortization1 to us-gaap_CapitalizedComputerSoftwareAmortization1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl1" xml:lang="en-US" id="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl1">Capitalized Computer Software, Amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CapitalizedComputerSoftwareAmortization1" xlink:to="us-gaap_CapitalizedComputerSoftwareAmortization1_lbl1" xlink:title="label: CapitalizedComputerSoftwareAmortization1 to us-gaap_CapitalizedComputerSoftwareAmortization1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:title="label: CashAndCashEquivalentsAtCarryingValue to us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:label="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="CashFlowOperatingActivitiesLesseeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl" xml:lang="en-US" id="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl">Cash Flows Related to Operating Leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl" xlink:title="label: CashFlowOperatingActivitiesLesseeAbstract to us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xml:lang="en-US" id="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1">Cash Flow, Operating Activities, Lessee [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" xlink:title="label: CashFlowOperatingActivitiesLesseeAbstract to us-gaap_CashFlowOperatingActivitiesLesseeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl">Cash and cash equivalents, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl1">Cash and cash equivalents, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl">(Decrease) increase in cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xml:lang="en-US" id="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" xlink:title="label: CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect to us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl">Cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" xlink:title="label: CashAndCashEquivalentsPolicyTextBlock to us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" xlink:title="label: CashAndCashEquivalentsPolicyTextBlock to us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ChangeInAccountingPrincipleMember_lbl" xml:lang="en-US" id="us-gaap_ChangeInAccountingPrincipleMember_lbl">Change in Accounting Principle, Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="us-gaap_ChangeInAccountingPrincipleMember_lbl" xlink:title="label: ChangeInAccountingPrincipleMember to us-gaap_ChangeInAccountingPrincipleMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ClassOfStockDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ClassOfStockDomain_lbl" xml:lang="en-US" id="us-gaap_ClassOfStockDomain_lbl">Class of Stock [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ClassOfStockDomain" xlink:to="us-gaap_ClassOfStockDomain_lbl" xlink:title="label: ClassOfStockDomain to us-gaap_ClassOfStockDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CommitmentsAndContingencies_lbl" xml:lang="en-US" id="us-gaap_CommitmentsAndContingencies_lbl">Commitments and contingencies (see Notes 9 and 14)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl" xlink:title="label: CommitmentsAndContingencies to us-gaap_CommitmentsAndContingencies_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommitmentsAndContingencies_lbl1" xml:lang="en-US" id="us-gaap_CommitmentsAndContingencies_lbl1">Commitments and Contingencies</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl1" xlink:title="label: CommitmentsAndContingencies to us-gaap_CommitmentsAndContingencies_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockMember_lbl" xml:lang="en-US" id="us-gaap_CommonStockMember_lbl">Common Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl" xlink:title="label: CommonStockMember to us-gaap_CommonStockMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareCashPaid" xlink:label="CommonStockDividendsPerShareCashPaid" xlink:title="CommonStockDividendsPerShareCashPaid" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockDividendsPerShareCashPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockDividendsPerShareCashPaid_lbl" xml:lang="en-US" id="us-gaap_CommonStockDividendsPerShareCashPaid_lbl">Dividends declared and paid per common share (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockDividendsPerShareCashPaid" xlink:to="us-gaap_CommonStockDividendsPerShareCashPaid_lbl" xlink:title="label: CommonStockDividendsPerShareCashPaid to us-gaap_CommonStockDividendsPerShareCashPaid_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xml:lang="en-US" id="us-gaap_CommonStockParOrStatedValuePerShare_lbl">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:title="label: CommonStockParOrStatedValuePerShare to us-gaap_CommonStockParOrStatedValuePerShare_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockValue_lbl" xml:lang="en-US" id="us-gaap_CommonStockValue_lbl">Common stock, $0.01 par value, 20,000,000 authorized at December 31, 2022 and 2021; 13,956,725 and 13,917,731 shares issued; 9,911,883 and 9,872,889 shares outstanding, at December 31, 2022 and 2021, respectively</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl" xlink:title="label: CommonStockValue to us-gaap_CommonStockValue_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesIssued_lbl" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued_lbl">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_CommonStockSharesIssued_lbl1" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued_lbl1">Ending balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl1" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl2" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_CommonStockSharesIssued_lbl2" xml:lang="en-US" id="us-gaap_CommonStockSharesIssued_lbl2">Beginning balance (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl2" xlink:title="label: CommonStockSharesIssued to us-gaap_CommonStockSharesIssued_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesAuthorized_lbl" xml:lang="en-US" id="us-gaap_CommonStockSharesAuthorized_lbl">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl" xlink:title="label: CommonStockSharesAuthorized to us-gaap_CommonStockSharesAuthorized_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CommonStockSharesOutstanding_lbl" xml:lang="en-US" id="us-gaap_CommonStockSharesOutstanding_lbl">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl" xlink:title="label: CommonStockSharesOutstanding to us-gaap_CommonStockSharesOutstanding_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl">Retirement savings plan [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" xlink:title="label: CompensationAndRetirementDisclosureAbstract to us-gaap_CompensationAndRetirementDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="CompensationAndEmployeeBenefitPlansTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xml:lang="en-US" id="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl">Retirement savings plan</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CompensationAndEmployeeBenefitPlansTextBlock" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" xlink:title="label: CompensationAndEmployeeBenefitPlansTextBlock to us-gaap_CompensationAndEmployeeBenefitPlansTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xml:lang="en-US" id="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl">Deferred income tax components [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" xlink:title="label: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTax_lbl">Comprehensive loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xlink:title="label: ComprehensiveIncomeNetOfTax to us-gaap_ComprehensiveIncomeNetOfTax_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTax_lbl1">Comprehensive loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl1" xlink:title="label: ComprehensiveIncomeNetOfTax to us-gaap_ComprehensiveIncomeNetOfTax_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ComprehensiveIncomeNetOfTax_lbl2" xml:lang="en-US" id="us-gaap_ComprehensiveIncomeNetOfTax_lbl2">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl2" xlink:title="label: ComprehensiveIncomeNetOfTax to us-gaap_ComprehensiveIncomeNetOfTax_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByTypeAxis_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskByTypeAxis_lbl">Concentration Risk Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:title="label: ConcentrationRiskByTypeAxis to us-gaap_ConcentrationRiskByTypeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskLineItems_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskLineItems_lbl">Concentration Risk [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskLineItems" xlink:to="us-gaap_ConcentrationRiskLineItems_lbl" xlink:title="label: ConcentrationRiskLineItems to us-gaap_ConcentrationRiskLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskTypeDomain_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskTypeDomain_lbl">Concentration Risk Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:title="label: ConcentrationRiskTypeDomain to us-gaap_ConcentrationRiskTypeDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="ConcentrationRiskCreditRisk" xlink:title="ConcentrationRiskCreditRisk" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskCreditRisk_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskCreditRisk_lbl">Concentration of credit risk</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl" xlink:title="label: ConcentrationRiskCreditRisk to us-gaap_ConcentrationRiskCreditRisk_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskBenchmarkDomain_lbl">Concentration Risk Benchmark [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:title="label: ConcentrationRiskBenchmarkDomain to us-gaap_ConcentrationRiskBenchmarkDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ConcentrationRiskPercentage1_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1_lbl">Concentration risk percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskPercentage1_lbl1" xml:lang="en-US" id="us-gaap_ConcentrationRiskPercentage1_lbl1">Concentration Risk, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl1" xlink:title="label: ConcentrationRiskPercentage1 to us-gaap_ConcentrationRiskPercentage1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskTable_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskTable_lbl">Concentration Risk [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskTable" xlink:to="us-gaap_ConcentrationRiskTable_lbl" xlink:title="label: ConcentrationRiskTable to us-gaap_ConcentrationRiskTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xml:lang="en-US" id="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl">Concentration Risk Benchmark [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:title="label: ConcentrationRiskByBenchmarkAxis to us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="ConsolidationPolicyTextBlock" xlink:title="ConsolidationPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConsolidationPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_ConsolidationPolicyTextBlock_lbl">Principles of consolidation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl" xlink:title="label: ConsolidationPolicyTextBlock to us-gaap_ConsolidationPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConstructionInProgressMember" xlink:label="ConstructionInProgressMember" xlink:title="ConstructionInProgressMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ConstructionInProgressMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ConstructionInProgressMember_lbl" xml:lang="en-US" id="us-gaap_ConstructionInProgressMember_lbl">Construction in-Process [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConstructionInProgressMember" xlink:to="us-gaap_ConstructionInProgressMember_lbl" xlink:title="label: ConstructionInProgressMember to us-gaap_ConstructionInProgressMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityCurrent_lbl">Deferred revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:title="label: ContractWithCustomerLiabilityCurrent to us-gaap_ContractWithCustomerLiabilityCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ContractWithCustomerLiabilityCurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityCurrent_lbl1">Deferred revenue, current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl1" xlink:title="label: ContractWithCustomerLiabilityCurrent to us-gaap_ContractWithCustomerLiabilityCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityAbstract" xlink:label="ContractWithCustomerLiabilityAbstract" xlink:title="ContractWithCustomerLiabilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerLiabilityAbstract_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityAbstract_lbl">Contract liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityAbstract_lbl" xlink:title="label: ContractWithCustomerLiabilityAbstract to us-gaap_ContractWithCustomerLiabilityAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityAbstract_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityAbstract_lbl1">Contract with Customer, Liability [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityAbstract_lbl1" xlink:title="label: ContractWithCustomerLiabilityAbstract to us-gaap_ContractWithCustomerLiabilityAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl">Unbilled receivables, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetNoncurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl" xlink:title="label: ContractWithCustomerAssetNetNoncurrent to us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1">Contract with Customer, Asset, after Allowance for Credit Loss, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetNoncurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" xlink:title="label: ContractWithCustomerAssetNetNoncurrent to us-gaap_ContractWithCustomerAssetNetNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetCurrent_lbl">Unbilled receivables, current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:title="label: ContractWithCustomerAssetNetCurrent to us-gaap_ContractWithCustomerAssetNetCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1">Contract with Customer, Asset, after Allowance for Credit Loss, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" xlink:title="label: ContractWithCustomerAssetNetCurrent to us-gaap_ContractWithCustomerAssetNetCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl">Deferred revenue, net of current portion</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:title="label: ContractWithCustomerLiabilityNoncurrent to us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl1">Deferred revenue, non-current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl1" xlink:title="label: ContractWithCustomerLiabilityNoncurrent to us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl">Net Contract Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:title="label: ContractWithCustomerAssetAndLiabilityTableTextBlock to us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" xlink:title="label: ContractWithCustomerAssetAndLiabilityTableTextBlock to us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CostOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CostOfRevenue_lbl" xml:lang="en-US" id="us-gaap_CostOfRevenue_lbl">Cost of sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl" xlink:title="label: CostOfRevenue to us-gaap_CostOfRevenue_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl">State</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" xlink:title="label: CurrentStateAndLocalTaxExpenseBenefit to us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1">Current State and Local Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" xlink:title="label: CurrentStateAndLocalTaxExpenseBenefit to us-gaap_CurrentStateAndLocalTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_CurrentFederalTaxExpenseBenefit_lbl">Federal</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl" xlink:title="label: CurrentFederalTaxExpenseBenefit to us-gaap_CurrentFederalTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1">Current Federal Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" xlink:title="label: CurrentFederalTaxExpenseBenefit to us-gaap_CurrentFederalTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentForeignTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_CurrentForeignTaxExpenseBenefit_lbl">Foreign</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit_lbl" xlink:title="label: CurrentForeignTaxExpenseBenefit to us-gaap_CurrentForeignTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1">Current Foreign Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" xlink:title="label: CurrentForeignTaxExpenseBenefit to us-gaap_CurrentForeignTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl">Income taxes current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" xlink:title="label: CurrentIncomeTaxExpenseBenefit to us-gaap_CurrentIncomeTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1">Current Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" xlink:title="label: CurrentIncomeTaxExpenseBenefit to us-gaap_CurrentIncomeTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl">Current [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:title="label: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xml:lang="en-US" id="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:title="label: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CustomerConcentrationRiskMember_lbl" xml:lang="en-US" id="us-gaap_CustomerConcentrationRiskMember_lbl">Customer Concentration Risk [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:title="label: CustomerConcentrationRiskMember to us-gaap_CustomerConcentrationRiskMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="CustomerRelationshipsMember" xlink:title="CustomerRelationshipsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_CustomerRelationshipsMember_lbl" xml:lang="en-US" id="us-gaap_CustomerRelationshipsMember_lbl">Customer Relationships [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl" xlink:title="label: CustomerRelationshipsMember to us-gaap_CustomerRelationshipsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl">Disaggregation of Revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" xlink:title="label: DisaggregationOfRevenueTableTextBlock to us-gaap_DisaggregationOfRevenueTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" xlink:title="label: DisaggregationOfRevenueTableTextBlock to us-gaap_DisaggregationOfRevenueTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueLineItems_lbl" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueLineItems_lbl">Disaggregation of Revenue [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:title="label: DisaggregationOfRevenueLineItems to us-gaap_DisaggregationOfRevenueLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueAbstract_lbl" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueAbstract_lbl">Disaggregation of revenue [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="us-gaap_DisaggregationOfRevenueAbstract_lbl" xlink:title="label: DisaggregationOfRevenueAbstract to us-gaap_DisaggregationOfRevenueAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisaggregationOfRevenueTable_lbl" xml:lang="en-US" id="us-gaap_DisaggregationOfRevenueTable_lbl">Disaggregation of Revenue [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:title="label: DisaggregationOfRevenueTable to us-gaap_DisaggregationOfRevenueTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl">Basis spread on variable rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" xlink:title="label: DebtInstrumentBasisSpreadOnVariableRate1 to us-gaap_DebtInstrumentBasisSpreadOnVariableRate1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_DebtDisclosureAbstract_lbl">Borrowings [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl" xlink:title="label: DebtDisclosureAbstract to us-gaap_DebtDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentTable_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentTable_lbl">Schedule of Long-term Debt Instruments [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable_lbl" xlink:title="label: DebtInstrumentTable to us-gaap_DebtInstrumentTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_DebtDisclosureTextBlock_lbl">Borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl" xlink:title="label: DebtDisclosureTextBlock to us-gaap_DebtDisclosureTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_DebtDisclosureTextBlock_lbl1">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl1" xlink:title="label: DebtDisclosureTextBlock to us-gaap_DebtDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentDecreaseForgiveness" xlink:label="DebtInstrumentDecreaseForgiveness" xlink:title="DebtInstrumentDecreaseForgiveness" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentDecreaseForgiveness_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtInstrumentDecreaseForgiveness_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentDecreaseForgiveness_lbl">Loan forgiven</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentDecreaseForgiveness" xlink:to="us-gaap_DebtInstrumentDecreaseForgiveness_lbl" xlink:title="label: DebtInstrumentDecreaseForgiveness to us-gaap_DebtInstrumentDecreaseForgiveness_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentDecreaseForgiveness_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentDecreaseForgiveness_lbl1" xml:lang="en-US" id="us-gaap_DebtInstrumentDecreaseForgiveness_lbl1">Debt Instrument, Decrease, Forgiveness</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentDecreaseForgiveness" xlink:to="us-gaap_DebtInstrumentDecreaseForgiveness_lbl1" xlink:title="label: DebtInstrumentDecreaseForgiveness to us-gaap_DebtInstrumentDecreaseForgiveness_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentAxis_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentAxis_lbl">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis_lbl" xlink:title="label: DebtInstrumentAxis to us-gaap_DebtInstrumentAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentLineItems_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentLineItems_lbl">Debt Instrument [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems_lbl" xlink:title="label: DebtInstrumentLineItems to us-gaap_DebtInstrumentLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="DebtInstrumentFaceAmount" xlink:title="DebtInstrumentFaceAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFaceAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtInstrumentFaceAmount_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentFaceAmount_lbl">Face amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFaceAmount" xlink:to="us-gaap_DebtInstrumentFaceAmount_lbl" xlink:title="label: DebtInstrumentFaceAmount to us-gaap_DebtInstrumentFaceAmount_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentFaceAmount_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentFaceAmount_lbl1" xml:lang="en-US" id="us-gaap_DebtInstrumentFaceAmount_lbl1">Debt Instrument, Face Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFaceAmount" xlink:to="us-gaap_DebtInstrumentFaceAmount_lbl1" xlink:title="label: DebtInstrumentFaceAmount to us-gaap_DebtInstrumentFaceAmount_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_DebtInstrumentsAbstract_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentsAbstract_lbl">Description of business [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentsAbstract" xlink:to="us-gaap_DebtInstrumentsAbstract_lbl" xlink:title="label: DebtInstrumentsAbstract to us-gaap_DebtInstrumentsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentsAbstract_lbl1" xml:lang="en-US" id="us-gaap_DebtInstrumentsAbstract_lbl1">Debt Instruments [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentsAbstract" xlink:to="us-gaap_DebtInstrumentsAbstract_lbl1" xlink:title="label: DebtInstrumentsAbstract to us-gaap_DebtInstrumentsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl">Interest rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" xlink:title="label: DebtInstrumentInterestRateStatedPercentage to us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xml:lang="en-US" id="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1">Debt Instrument, Interest Rate, Stated Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentInterestRateStatedPercentage" xlink:to="us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" xlink:title="label: DebtInstrumentInterestRateStatedPercentage to us-gaap_DebtInstrumentInterestRateStatedPercentage_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DebtInstrumentNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DebtInstrumentNameDomain_lbl" xml:lang="en-US" id="us-gaap_DebtInstrumentNameDomain_lbl">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain_lbl" xlink:title="label: DebtInstrumentNameDomain to us-gaap_DebtInstrumentNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:label="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:title="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xml:lang="en-US" id="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl">Expected decrease in unrecognized tax benefits in next year</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:to="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" xlink:title="label: DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible to us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl1" xml:lang="en-US" id="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl1">Decrease in Unrecognized Tax Benefits is Reasonably Possible</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:to="us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl1" xlink:title="label: DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible to us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:title="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl">Term of award</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualMaximumContractualTerm1 to us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl1">Deferred Compensation Arrangement with Individual, Maximum Contractual Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl1" xlink:title="label: DeferredCompensationArrangementWithIndividualMaximumContractualTerm1 to us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet_lbl">Deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxAssetsNet_lbl1">Deferred Income Tax Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet_lbl1" xlink:title="label: DeferredIncomeTaxAssetsNet to us-gaap_DeferredIncomeTaxAssetsNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:label="DeferredTaxLiabilitiesNetAbstract" xlink:title="DeferredTaxLiabilitiesNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesNetAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesNetAbstract_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesNetAbstract_lbl">Deferred tax liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="us-gaap_DeferredTaxLiabilitiesNetAbstract_lbl" xlink:title="label: DeferredTaxLiabilitiesNetAbstract to us-gaap_DeferredTaxLiabilitiesNetAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice" xlink:label="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:title="DeferredCompensationArrangementWithIndividualExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl">Weighted average exercise price of deferred stock units (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualExercisePrice to us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl1">Deferred Compensation Arrangement with Individual, Exercise Price</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl1" xlink:title="label: DeferredCompensationArrangementWithIndividualExercisePrice to us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementsAbstract" xlink:label="DeferredCompensationArrangementsAbstract" xlink:title="DeferredCompensationArrangementsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_DeferredCompensationArrangementsAbstract_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementsAbstract_lbl">Restricted stock [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="us-gaap_DeferredCompensationArrangementsAbstract_lbl" xlink:title="label: DeferredCompensationArrangementsAbstract to us-gaap_DeferredCompensationArrangementsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementsAbstract_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementsAbstract_lbl1">Deferred Compensation Arrangements [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="us-gaap_DeferredCompensationArrangementsAbstract_lbl1" xlink:title="label: DeferredCompensationArrangementsAbstract to us-gaap_DeferredCompensationArrangementsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:label="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:title="DeferredCompensationArrangementWithIndividualCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl">Deferred compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualCompensationExpense to us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl1">Deferred Compensation Arrangement with Individual, Compensation Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl1" xlink:title="label: DeferredCompensationArrangementWithIndividualCompensationExpense to us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued" xlink:label="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:title="DeferredCompensationArrangementWithIndividualSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl">Deferred stock units issued for incentive bonus (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualSharesIssued to us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl1">Deferred Compensation Arrangement with Individual, Shares Issued</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl1" xlink:title="label: DeferredCompensationArrangementWithIndividualSharesIssued to us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems_lbl">Deferred Compensation Arrangement with Individual, Share-based Payments [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis_lbl">Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis_lbl" xlink:title="label: DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis to us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredFinanceCostsGross_lbl" xml:lang="en-US" id="us-gaap_DeferredFinanceCostsGross_lbl">Deferred financing costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFinanceCostsGross" xlink:to="us-gaap_DeferredFinanceCostsGross_lbl" xlink:title="label: DeferredFinanceCostsGross to us-gaap_DeferredFinanceCostsGross_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFinanceCostsGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredFinanceCostsGross_lbl1" xml:lang="en-US" id="us-gaap_DeferredFinanceCostsGross_lbl1">Debt Issuance Costs, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFinanceCostsGross" xlink:to="us-gaap_DeferredFinanceCostsGross_lbl1" xlink:title="label: DeferredFinanceCostsGross to us-gaap_DeferredFinanceCostsGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationShareBasedPaymentsMember" xlink:label="DeferredCompensationShareBasedPaymentsMember" xlink:title="DeferredCompensationShareBasedPaymentsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl" xml:lang="en-US" id="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl">Restricted Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationShareBasedPaymentsMember" xlink:to="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl" xlink:title="label: DeferredCompensationShareBasedPaymentsMember to us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl1" xml:lang="en-US" id="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl1">Deferred Compensation, Share-Based Payments [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredCompensationShareBasedPaymentsMember" xlink:to="us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl1" xlink:title="label: DeferredCompensationShareBasedPaymentsMember to us-gaap_DeferredCompensationShareBasedPaymentsMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl">Federal</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" xlink:title="label: DeferredFederalIncomeTaxExpenseBenefit to us-gaap_DeferredFederalIncomeTaxExpenseBenefit_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl">Foreign</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl" xlink:title="label: DeferredForeignIncomeTaxExpenseBenefit to us-gaap_DeferredForeignIncomeTaxExpenseBenefit_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl">Deferred [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:title="label: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" xlink:title="label: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl">Deferred income tax benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:title="label: DeferredIncomeTaxExpenseBenefit to us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl1">Income taxes deferred</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl1" xlink:title="label: DeferredIncomeTaxExpenseBenefit to us-gaap_DeferredIncomeTaxExpenseBenefit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl">Total net deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" xlink:title="label: DeferredTaxAssetsLiabilitiesNet to us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1">Deferred Tax Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsLiabilitiesNet" xlink:to="us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" xlink:title="label: DeferredTaxAssetsLiabilitiesNet to us-gaap_DeferredTaxAssetsLiabilitiesNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl">State</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" xlink:title="label: DeferredStateAndLocalIncomeTaxExpenseBenefit to us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsDeferredIncome_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsDeferredIncome_lbl">Deferred revenue</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsDeferredIncome" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome_lbl" xlink:title="label: DeferredTaxAssetsDeferredIncome to us-gaap_DeferredTaxAssetsDeferredIncome_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1">Deferred Tax Assets, Deferred Income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsDeferredIncome" xlink:to="us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" xlink:title="label: DeferredTaxAssetsDeferredIncome to us-gaap_DeferredTaxAssetsDeferredIncome_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl">State net operating losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNetAbstract" xlink:label="DeferredTaxAssetsNetAbstract" xlink:title="DeferredTaxAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNetAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsNetAbstract_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNetAbstract_lbl">Deferred tax assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="us-gaap_DeferredTaxAssetsNetAbstract_lbl" xlink:title="label: DeferredTaxAssetsNetAbstract to us-gaap_DeferredTaxAssetsNetAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNetAbstract_lbl1">Deferred Tax Assets, Net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="us-gaap_DeferredTaxAssetsNetAbstract_lbl1" xlink:title="label: DeferredTaxAssetsNetAbstract to us-gaap_DeferredTaxAssetsNetAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_lbl">Foreign net operating losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_lbl" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsForeign to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsNet_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNet_lbl">Net deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl" xlink:title="label: DeferredTaxAssetsNet to us-gaap_DeferredTaxAssetsNet_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsNet_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsNet_lbl1">Deferred Tax Assets, Net of Valuation Allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet_lbl1" xlink:title="label: DeferredTaxAssetsNet to us-gaap_DeferredTaxAssetsNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" xlink:title="label: DeferredTaxAssetsOperatingLossCarryforwardsDomestic to us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxAssetsGross_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsGross_lbl">Gross deferred tax assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl" xlink:title="label: DeferredTaxAssetsGross to us-gaap_DeferredTaxAssetsGross_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsGross_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsGross_lbl1">Deferred Tax Assets, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross_lbl1" xlink:title="label: DeferredTaxAssetsGross to us-gaap_DeferredTaxAssetsGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_lbl">Capitalized R&amp;D expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:to="us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_lbl" xlink:title="label: DeferredTaxAssetsInProcessResearchAndDevelopment to us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsInventory_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsInventory_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsInventory_lbl">Inventory reserves</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsInventory" xlink:to="us-gaap_DeferredTaxAssetsInventory_lbl" xlink:title="label: DeferredTaxAssetsInventory to us-gaap_DeferredTaxAssetsInventory_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsOther_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsOther_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsOther_lbl">Other liabilities and reserves</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsOther" xlink:to="us-gaap_DeferredTaxAssetsOther_lbl" xlink:title="label: DeferredTaxAssetsOther to us-gaap_DeferredTaxAssetsOther_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation_lbl">Other accrued compensation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation_lbl" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation to us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl">Depreciation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements to us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl1">Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Legal Settlements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl1" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements to us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl">R&amp;D credit carryforward</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" xlink:title="label: DeferredTaxAssetsTaxCreditCarryforwardsResearch to us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl">Stock compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost to us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_DeferredTaxLiabilities_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilities_lbl">Net deferred tax liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities_lbl" xlink:title="label: DeferredTaxLiabilities to us-gaap_DeferredTaxLiabilities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilities_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilities_lbl1">Deferred Tax Liabilities, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities_lbl1" xlink:title="label: DeferredTaxLiabilities to us-gaap_DeferredTaxLiabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl">Warranty reserve</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl" xlink:title="label: DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves to us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsValuationAllowance_lbl">Valuation allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl" xlink:title="label: DeferredTaxAssetsValuationAllowance to us-gaap_DeferredTaxAssetsValuationAllowance_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" xlink:title="label: DeferredTaxAssetsValuationAllowance to us-gaap_DeferredTaxAssetsValuationAllowance_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxLiabilitiesOther_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesOther_lbl">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl" xlink:title="label: DeferredTaxLiabilitiesOther to us-gaap_DeferredTaxLiabilitiesOther_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesOther_lbl1">Deferred Tax Liabilities, Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesOther" xlink:to="us-gaap_DeferredTaxLiabilitiesOther_lbl1" xlink:title="label: DeferredTaxLiabilitiesOther to us-gaap_DeferredTaxLiabilitiesOther_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl">Depreciation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" xlink:title="label: DeferredTaxLiabilitiesPropertyPlantAndEquipment to us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1">Deferred Tax Liabilities, Property, Plant and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" xlink:title="label: DeferredTaxLiabilitiesPropertyPlantAndEquipment to us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_lbl" xml:lang="en-US" id="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_lbl">Employee's contribution percentage for match</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:to="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_lbl" xlink:title="label: DefinedContributionPlanEmployerMatchingContributionPercent to us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_lbl" xml:lang="en-US" id="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_lbl">Employer matching contribution percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:to="us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_lbl" xlink:title="label: DefinedContributionPlanEmployerMatchingContributionPercentOfMatch to us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="DefinedContributionPlanCostRecognized" xlink:title="DefinedContributionPlanCostRecognized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DefinedContributionPlanCostRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DefinedContributionPlanCostRecognized_lbl" xml:lang="en-US" id="us-gaap_DefinedContributionPlanCostRecognized_lbl">Amount of matching contribution</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DefinedContributionPlanCostRecognized" xlink:to="us-gaap_DefinedContributionPlanCostRecognized_lbl" xlink:title="label: DefinedContributionPlanCostRecognized to us-gaap_DefinedContributionPlanCostRecognized_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DepreciationAndAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_DepreciationAndAmortization_lbl" xml:lang="en-US" id="us-gaap_DepreciationAndAmortization_lbl">Depreciation and amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl" xlink:title="label: DepreciationAndAmortization to us-gaap_DepreciationAndAmortization_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DepreciationAndAmortization_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DepreciationAndAmortization_lbl1" xml:lang="en-US" id="us-gaap_DepreciationAndAmortization_lbl1">Depreciation, Depletion and Amortization, Nonproduction</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl1" xlink:title="label: DepreciationAndAmortization to us-gaap_DepreciationAndAmortization_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Depreciation_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Depreciation_lbl" xml:lang="en-US" id="us-gaap_Depreciation_lbl">Depreciation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Depreciation" xlink:to="us-gaap_Depreciation_lbl" xlink:title="label: Depreciation to us-gaap_Depreciation_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl">Stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:title="label: DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock to us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xml:lang="en-US" id="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl">Stock incentive plans [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:title="label: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_DomesticCountryMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_DomesticCountryMember_lbl" xml:lang="en-US" id="us-gaap_DomesticCountryMember_lbl">Federal [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember_lbl" xlink:title="label: DomesticCountryMember to us-gaap_DomesticCountryMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareReconciliationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareReconciliationAbstract_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareReconciliationAbstract_lbl">Earnings per share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="us-gaap_EarningsPerShareReconciliationAbstract_lbl" xlink:title="label: EarningsPerShareReconciliationAbstract to us-gaap_EarningsPerShareReconciliationAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareReconciliationAbstract_lbl1">Earnings Per Share Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="us-gaap_EarningsPerShareReconciliationAbstract_lbl1" xlink:title="label: EarningsPerShareReconciliationAbstract to us-gaap_EarningsPerShareReconciliationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="EarningsPerSharePolicyTextBlock" xlink:title="EarningsPerSharePolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_EarningsPerSharePolicyTextBlock_lbl">Net income and loss per share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl" xlink:title="label: EarningsPerSharePolicyTextBlock to us-gaap_EarningsPerSharePolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasic_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareBasic_lbl">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl" xlink:title="label: EarningsPerShareBasic to us-gaap_EarningsPerShareBasic_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareDiluted_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted_lbl">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareDiluted_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareDiluted_lbl1">Earnings Per Share, Diluted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl1" xlink:title="label: EarningsPerShareDiluted to us-gaap_EarningsPerShareDiluted_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareTextBlock_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareTextBlock_lbl">Earnings per share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl" xlink:title="label: EarningsPerShareTextBlock to us-gaap_EarningsPerShareTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="EarningsPerShareBasicAbstract" xlink:title="EarningsPerShareBasicAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareBasicAbstract_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicAbstract_lbl">Net loss per common share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicAbstract" xlink:to="us-gaap_EarningsPerShareBasicAbstract_lbl" xlink:title="label: EarningsPerShareBasicAbstract to us-gaap_EarningsPerShareBasicAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasicAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicAbstract_lbl1">Earnings Per Share, Basic [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicAbstract" xlink:to="us-gaap_EarningsPerShareBasicAbstract_lbl1" xlink:title="label: EarningsPerShareBasicAbstract to us-gaap_EarningsPerShareBasicAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl">Shares used in per-share calculation:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl" xlink:title="label: EarningsPerShareBasicOtherDisclosuresAbstract to us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl1">Shares used in per-share calculation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl1" xlink:title="label: EarningsPerShareBasicOtherDisclosuresAbstract to us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EarningsPerShareAbstract_lbl" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract_lbl">Net loss per common share:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EarningsPerShareAbstract_lbl1" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract_lbl1">Earnings per share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl1" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EarningsPerShareAbstract_lbl2" xml:lang="en-US" id="us-gaap_EarningsPerShareAbstract_lbl2">Net (loss) income per common share [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl2" xlink:title="label: EarningsPerShareAbstract to us-gaap_EarningsPerShareAbstract_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xml:lang="en-US" id="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl">Effect of exchange rate changes on cash and cash equivalents</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:title="label: EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents to us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl">Federal statutory tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate to us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate to us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl">Valuation allowance and tax accruals</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance to us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment_lbl">Business meals and entertainment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment to us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl">Stock award excess tax benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent to us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent to us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_lbl">State income taxes, net of federal income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes to us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl">Stock option cancellations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost to us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl">Uncertain tax positions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxContingencies to us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1">Effective Income Tax Rate Reconciliation, Tax Contingency, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxContingencies to us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl">Effective tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" xlink:title="label: EffectiveIncomeTaxRateContinuingOperations to us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl1">Effective tax rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl1" xlink:title="label: EffectiveIncomeTaxRateContinuingOperations to us-gaap_EffectiveIncomeTaxRateContinuingOperations_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationOtherAdjustments to us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1">Effective Income Tax Rate Reconciliation, Other Adjustments, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationOtherAdjustments to us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl">R&amp;D credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxCreditsResearch to us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1">Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationTaxCreditsResearch to us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:label="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_lbl" xml:lang="en-US" id="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_lbl">Effective Tax Rate Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_lbl" xlink:title="label: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeStockOptionMember_lbl" xml:lang="en-US" id="us-gaap_EmployeeStockOptionMember_lbl">Stock Options [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember_lbl" xlink:title="label: EmployeeStockOptionMember to us-gaap_EmployeeStockOptionMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl">Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl">Weighted average period to recognize compensation cost not yet recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl">Excess tax benefit in provision for income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl">Unrecognized compensation cost related to stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions to us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xml:lang="en-US" id="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl">Salaries and compensation related</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeRelatedLiabilitiesCurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" xlink:title="label: EmployeeRelatedLiabilitiesCurrent to us-gaap_EmployeeRelatedLiabilitiesCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl">Income tax benefit from share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xml:lang="en-US" id="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1">Share-Based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" xlink:title="label: EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense to us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:label="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:title="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_lbl" xml:lang="en-US" id="us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_lbl">Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:to="us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_lbl" xlink:title="label: EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain to us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityAbstract_lbl" xml:lang="en-US" id="us-gaap_EquityAbstract_lbl">Stock repurchase program [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl" xlink:title="label: EquityAbstract to us-gaap_EquityAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_EquityComponentDomain_lbl" xml:lang="en-US" id="us-gaap_EquityComponentDomain_lbl">Equity Component [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl" xlink:title="label: EquityComponentDomain to us-gaap_EquityComponentDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualNoncurrent" xlink:label="ExtendedProductWarrantyAccrualNoncurrent" xlink:title="ExtendedProductWarrantyAccrualNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyAccrualNoncurrent_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualNoncurrent_lbl">Accrued product warranty liability, long-term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualNoncurrent" xlink:to="us-gaap_ExtendedProductWarrantyAccrualNoncurrent_lbl" xlink:title="label: ExtendedProductWarrantyAccrualNoncurrent to us-gaap_ExtendedProductWarrantyAccrualNoncurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualPayments" xlink:label="ExtendedProductWarrantyAccrualPayments" xlink:title="ExtendedProductWarrantyAccrualPayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl">Warranty settlements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualPayments" xlink:to="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl" xlink:title="label: ExtendedProductWarrantyAccrualPayments to us-gaap_ExtendedProductWarrantyAccrualPayments_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl1" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl1">Extended Product Warranty Accrual, Decrease for Payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualPayments" xlink:to="us-gaap_ExtendedProductWarrantyAccrualPayments_lbl1" xlink:title="label: ExtendedProductWarrantyAccrualPayments to us-gaap_ExtendedProductWarrantyAccrualPayments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyDisclosureAbstract" xlink:label="ExtendedProductWarrantyDisclosureAbstract" xlink:title="ExtendedProductWarrantyDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl">Warranty [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl" xlink:title="label: ExtendedProductWarrantyDisclosureAbstract to us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl1" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl1">Extended Product Warranty Disclosure [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl1" xlink:title="label: ExtendedProductWarrantyDisclosureAbstract to us-gaap_ExtendedProductWarrantyDisclosureAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:label="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:title="ExtendedProductWarrantyAccrualWarrantiesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl">Warranties issued</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:to="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl" xlink:title="label: ExtendedProductWarrantyAccrualWarrantiesIssued to us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl1" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl1">Extended Product Warranty Accrual, Increase for Warranties Issued</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:to="us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl1" xlink:title="label: ExtendedProductWarrantyAccrualWarrantiesIssued to us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="ExtendedProductWarrantyAccrualCurrent" xlink:title="ExtendedProductWarrantyAccrualCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl">Accrued product warranty liability, current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrualCurrent" xlink:to="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl" xlink:title="label: ExtendedProductWarrantyAccrualCurrent to us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="ExtendedProductWarrantyAccrual" xlink:title="ExtendedProductWarrantyAccrual" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ExtendedProductWarrantyAccrual_lbl" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrual_lbl">Balance, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl" xlink:title="label: ExtendedProductWarrantyAccrual to us-gaap_ExtendedProductWarrantyAccrual_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ExtendedProductWarrantyAccrual_lbl1" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrual_lbl1">Balance, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl1" xlink:title="label: ExtendedProductWarrantyAccrual to us-gaap_ExtendedProductWarrantyAccrual_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtendedProductWarrantyAccrual_lbl2" xml:lang="en-US" id="us-gaap_ExtendedProductWarrantyAccrual_lbl2">Extended Product Warranty Accrual</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl2" xlink:title="label: ExtendedProductWarrantyAccrual to us-gaap_ExtendedProductWarrantyAccrual_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="ExtraordinaryAndUnusualItemsAbstract" xlink:title="ExtraordinaryAndUnusualItemsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl" xml:lang="en-US" id="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl">Description of business [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl" xlink:title="label: ExtraordinaryAndUnusualItemsAbstract to us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl1" xml:lang="en-US" id="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl1">Unusual or Infrequent Items, or Both [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl1" xlink:title="label: ExtraordinaryAndUnusualItemsAbstract to us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FederalFundsEffectiveSwapRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_FederalFundsEffectiveSwapRateMember_lbl" xml:lang="en-US" id="us-gaap_FederalFundsEffectiveSwapRateMember_lbl">Federal Funds Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FederalFundsEffectiveSwapRateMember" xlink:to="us-gaap_FederalFundsEffectiveSwapRateMember_lbl" xlink:title="label: FederalFundsEffectiveSwapRateMember to us-gaap_FederalFundsEffectiveSwapRateMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xml:lang="en-US" id="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1">Fed Funds Effective Rate Overnight Index Swap Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FederalFundsEffectiveSwapRateMember" xlink:to="us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" xlink:title="label: FederalFundsEffectiveSwapRateMember to us-gaap_FederalFundsEffectiveSwapRateMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl">2024</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNetAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsNetAbstract_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsNetAbstract_lbl">Identifiable intangible assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNetAbstract_lbl" xlink:title="label: FiniteLivedIntangibleAssetsNetAbstract to us-gaap_FiniteLivedIntangibleAssetsNetAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:title="label: FiniteLivedIntangibleAssetsMajorClassNameDomain to us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl">Thereafter</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl1" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl1">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl1" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:title="label: FiniteLivedIntangibleAssetsByMajorClassAxis to us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:title="label: FiniteLivedIntangibleAssetsLineItems to us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl">2023</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:title="label: FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths to us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl">Accumulated amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:title="label: FiniteLivedIntangibleAssetsAccumulatedAmortization to us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl1" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl1">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl1" xlink:title="label: FiniteLivedIntangibleAssetsAccumulatedAmortization to us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:title="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl">Future amortization expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" xlink:title="label: FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract to us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xml:lang="en-US" id="us-gaap_FiniteLivedIntangibleAssetsGross_lbl">Gross amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:title="label: FiniteLivedIntangibleAssetsGross to us-gaap_FiniteLivedIntangibleAssetsGross_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="ForeignCurrencyTransactionGainLossBeforeTax" xlink:title="ForeignCurrencyTransactionGainLossBeforeTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl">Foreign currency transaction losses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" xlink:title="label: ForeignCurrencyTransactionGainLossBeforeTax to us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl1" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl1">Foreign Currency Transaction Gain (Loss), before Tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl1" xlink:title="label: ForeignCurrencyTransactionGainLossBeforeTax to us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl">Foreign Currency Translation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" xlink:title="label: ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock to us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" xlink:title="label: ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock to us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfProperty" xlink:label="GainLossOnSaleOfProperty" xlink:title="GainLossOnSaleOfProperty" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfProperty_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_GainLossOnSaleOfProperty_lbl" xml:lang="en-US" id="us-gaap_GainLossOnSaleOfProperty_lbl">Loss on the disposal of fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainLossOnSaleOfProperty" xlink:to="us-gaap_GainLossOnSaleOfProperty_lbl" xlink:title="label: GainLossOnSaleOfProperty to us-gaap_GainLossOnSaleOfProperty_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfProperty_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GainLossOnSaleOfProperty_lbl1" xml:lang="en-US" id="us-gaap_GainLossOnSaleOfProperty_lbl1">Gain (Loss) on Disposition of Oil and Gas and Timber Property</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainLossOnSaleOfProperty" xlink:to="us-gaap_GainLossOnSaleOfProperty_lbl1" xlink:title="label: GainLossOnSaleOfProperty to us-gaap_GainLossOnSaleOfProperty_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="GainsLossesOnExtinguishmentOfDebt" xlink:title="GainsLossesOnExtinguishmentOfDebt" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl" xml:lang="en-US" id="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl">Gain on forgiveness of long-term debt</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainsLossesOnExtinguishmentOfDebt" xlink:to="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl" xlink:title="label: GainsLossesOnExtinguishmentOfDebt to us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl1" xml:lang="en-US" id="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl1">Gain on forgiveness of long-term debt</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainsLossesOnExtinguishmentOfDebt" xlink:to="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl1" xlink:title="label: GainsLossesOnExtinguishmentOfDebt to us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl2" xml:lang="en-US" id="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl2">Gain (Loss) on Extinguishment of Debt</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainsLossesOnExtinguishmentOfDebt" xlink:to="us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl2" xlink:title="label: GainsLossesOnExtinguishmentOfDebt to us-gaap_GainsLossesOnExtinguishmentOfDebt_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeneralAndAdministrativeExpense_lbl" xml:lang="en-US" id="us-gaap_GeneralAndAdministrativeExpense_lbl">General and administrative</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:title="label: GeneralAndAdministrativeExpense to us-gaap_GeneralAndAdministrativeExpense_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xml:lang="en-US" id="us-gaap_GeneralAndAdministrativeExpenseMember_lbl">General and Administrative Expense [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:title="label: GeneralAndAdministrativeExpenseMember to us-gaap_GeneralAndAdministrativeExpenseMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GeographicConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GeographicConcentrationRiskMember_lbl" xml:lang="en-US" id="us-gaap_GeographicConcentrationRiskMember_lbl">Geographic Concentration Risk [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GeographicConcentrationRiskMember" xlink:to="us-gaap_GeographicConcentrationRiskMember_lbl" xlink:title="label: GeographicConcentrationRiskMember to us-gaap_GeographicConcentrationRiskMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl">Goodwill and intangible assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" xlink:title="label: GoodwillAndIntangibleAssetsPolicyTextBlock to us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="GoodwillAndIntangibleAssetImpairment" xlink:title="GoodwillAndIntangibleAssetImpairment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl">Impairment of goodwill and intangible assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetImpairment" xlink:to="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl" xlink:title="label: GoodwillAndIntangibleAssetImpairment to us-gaap_GoodwillAndIntangibleAssetImpairment_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1">Goodwill and Intangible Asset Impairment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetImpairment" xlink:to="us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" xlink:title="label: GoodwillAndIntangibleAssetImpairment to us-gaap_GoodwillAndIntangibleAssetImpairment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Goodwill_lbl" xml:lang="en-US" id="us-gaap_Goodwill_lbl">Goodwill</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Goodwill" xlink:to="us-gaap_Goodwill_lbl" xlink:title="label: Goodwill to us-gaap_Goodwill_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl">Intangible assets, net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:title="label: GoodwillAndIntangibleAssetsDisclosureAbstract to us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_GrossProfit_lbl" xml:lang="en-US" id="us-gaap_GrossProfit_lbl">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit_lbl" xlink:title="label: GrossProfit to us-gaap_GrossProfit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_GrossProfit_lbl1" xml:lang="en-US" id="us-gaap_GrossProfit_lbl1">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit_lbl1" xlink:title="label: GrossProfit to us-gaap_GrossProfit_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_GrossProfit_lbl2" xml:lang="en-US" id="us-gaap_GrossProfit_lbl2">Gross profit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GrossProfit" xlink:to="us-gaap_GrossProfit_lbl2" xlink:title="label: GrossProfit to us-gaap_GrossProfit_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementLocationAxis_lbl" xml:lang="en-US" id="us-gaap_IncomeStatementLocationAxis_lbl">Income Statement Location [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl" xlink:title="label: IncomeStatementLocationAxis to us-gaap_IncomeStatementLocationAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureAbstract_lbl">Income taxes [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl" xlink:title="label: IncomeTaxDisclosureAbstract to us-gaap_IncomeTaxDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl">Loss before income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1">Loss before income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementLocationDomain_lbl" xml:lang="en-US" id="us-gaap_IncomeStatementLocationDomain_lbl">Income Statement Location [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl" xlink:title="label: IncomeStatementLocationDomain to us-gaap_IncomeStatementLocationDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxAuthorityAxis_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxAuthorityAxis_lbl">Income Tax Authority [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis_lbl" xlink:title="label: IncomeTaxAuthorityAxis to us-gaap_IncomeTaxAuthorityAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl" xml:lang="en-US" id="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl">Foreign income (loss) before taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl" xlink:title="label: IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign to us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxDisclosureTextBlock_lbl">Income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl" xlink:title="label: IncomeTaxDisclosureTextBlock to us-gaap_IncomeTaxDisclosureTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeStatementAbstract_lbl" xml:lang="en-US" id="us-gaap_IncomeStatementAbstract_lbl">CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl" xlink:title="label: IncomeStatementAbstract to us-gaap_IncomeStatementAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeStatementAbstract_lbl1" xml:lang="en-US" id="us-gaap_IncomeStatementAbstract_lbl1">Consolidated Statements of Operations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl1" xlink:title="label: IncomeStatementAbstract to us-gaap_IncomeStatementAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxAuthorityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxAuthorityDomain_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxAuthorityDomain_lbl">Income Tax Authority [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain_lbl" xlink:title="label: IncomeTaxAuthorityDomain to us-gaap_IncomeTaxAuthorityDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl">Income taxes [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1">Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit_lbl">Income tax benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_IncomeTaxExpenseBenefit_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit_lbl1">Income tax benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl1" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefit_lbl2" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefit_lbl2">Income Tax Expense (Benefit)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl2" xlink:title="label: IncomeTaxExpenseBenefit to us-gaap_IncomeTaxExpenseBenefit_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl">Components of income tax benefit [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" xlink:title="label: IncomeTaxExpenseBenefitContinuingOperationsAbstract to us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:label="IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:title="IncomeTaxExaminationPenaltiesAndInterestAccrued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued_lbl">Accrued interest and penalties related to uncertain tax positions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:to="us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued_lbl" xlink:title="label: IncomeTaxExaminationPenaltiesAndInterestAccrued to us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncomeTaxPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxPolicyTextBlock_lbl">Income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl" xlink:title="label: IncomeTaxPolicyTextBlock to us-gaap_IncomeTaxPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_IncomeTaxPolicyTextBlock_lbl1">Income Tax, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl1" xlink:title="label: IncomeTaxPolicyTextBlock to us-gaap_IncomeTaxPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaid" xlink:label="IncomeTaxesPaid" xlink:title="IncomeTaxesPaid" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncomeTaxesPaid_lbl" xml:lang="en-US" id="us-gaap_IncomeTaxesPaid_lbl">Income taxes paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncomeTaxesPaid" xlink:to="us-gaap_IncomeTaxesPaid_lbl" xlink:title="label: IncomeTaxesPaid to us-gaap_IncomeTaxesPaid_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl">Prepaid income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidTaxes" xlink:to="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl" xlink:title="label: IncreaseDecreaseInPrepaidTaxes to us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1">Increase (Decrease) in Prepaid Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInPrepaidTaxes" xlink:to="us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" xlink:title="label: IncreaseDecreaseInPrepaidTaxes to us-gaap_IncreaseDecreaseInPrepaidTaxes_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl">Increase (decrease) in operating lease liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1">Increase (Decrease) in Operating Lease Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" xlink:title="label: IncreaseDecreaseInOperatingLeaseLiability to us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable_lbl">Accounts payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1">Increase (Decrease) in Accounts Payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" xlink:title="label: IncreaseDecreaseInAccountsPayable to us-gaap_IncreaseDecreaseInAccountsPayable_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl">Accrued liabilities and other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:title="label: IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1">Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" xlink:title="label: IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities to us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInInventories_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories_lbl">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInInventories_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInInventories_lbl1">Increase (Decrease) in Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl1" xlink:title="label: IncreaseDecreaseInInventories to us-gaap_IncreaseDecreaseInInventories_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl">Other current and long-term assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" xlink:title="label: IncreaseDecreaseInOtherOperatingAssets to us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1">Increase (Decrease) in Other Operating Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" xlink:title="label: IncreaseDecreaseInOtherOperatingAssets to us-gaap_IncreaseDecreaseInOtherOperatingAssets_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl">Changes in operating assets and liabilities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:title="label: IncreaseDecreaseInOperatingCapitalAbstract to us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="IncreaseDecreaseInReceivables" xlink:title="IncreaseDecreaseInReceivables" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInReceivables_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_IncreaseDecreaseInReceivables_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInReceivables_lbl">Accounts receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInReceivables" xlink:to="us-gaap_IncreaseDecreaseInReceivables_lbl" xlink:title="label: IncreaseDecreaseInReceivables to us-gaap_IncreaseDecreaseInReceivables_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInReceivables_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInReceivables_lbl1" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInReceivables_lbl1">Increase (Decrease) in Receivables</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInReceivables" xlink:to="us-gaap_IncreaseDecreaseInReceivables_lbl1" xlink:title="label: IncreaseDecreaseInReceivables to us-gaap_IncreaseDecreaseInReceivables_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xml:lang="en-US" id="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" xlink:title="label: IncreaseDecreaseInStockholdersEquityRollForward to us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl">Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xml:lang="en-US" id="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1">Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" xlink:title="label: IncrementalCommonSharesAttributableToShareBasedPaymentArrangements to us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="IntangibleAssetsDisclosureTextBlock" xlink:title="IntangibleAssetsDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl">Intangible assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:title="label: IntangibleAssetsDisclosureTextBlock to us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1">Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" xlink:title="label: IntangibleAssetsDisclosureTextBlock to us-gaap_IntangibleAssetsDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xml:lang="en-US" id="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl">Intangible assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" xlink:title="label: IntangibleAssetsNetExcludingGoodwill to us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xml:lang="en-US" id="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" xlink:title="label: IntangibleAssetsNetExcludingGoodwill to us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="InterestExpense" xlink:title="InterestExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_InterestExpense_lbl" xml:lang="en-US" id="us-gaap_InterestExpense_lbl">Interest expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestExpense" xlink:to="us-gaap_InterestExpense_lbl" xlink:title="label: InterestExpense to us-gaap_InterestExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestExpense_lbl1" xml:lang="en-US" id="us-gaap_InterestExpense_lbl1">Interest Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestExpense" xlink:to="us-gaap_InterestExpense_lbl1" xlink:title="label: InterestExpense to us-gaap_InterestExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestIncomeDomesticDeposits_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestIncomeDomesticDeposits_lbl" xml:lang="en-US" id="us-gaap_InterestIncomeDomesticDeposits_lbl">Interest income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestIncomeDomesticDeposits" xlink:to="us-gaap_InterestIncomeDomesticDeposits_lbl" xlink:title="label: InterestIncomeDomesticDeposits to us-gaap_InterestIncomeDomesticDeposits_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestPaidNet" xlink:label="InterestPaidNet" xlink:title="InterestPaidNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InterestPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InterestPaidNet_lbl" xml:lang="en-US" id="us-gaap_InterestPaidNet_lbl">Interest paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl" xlink:title="label: InterestPaidNet to us-gaap_InterestPaidNet_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_InventoryDisclosureAbstract_lbl">Inventories [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl" xlink:title="label: InventoryDisclosureAbstract to us-gaap_InventoryDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="InventoryDisclosureTextBlock" xlink:title="InventoryDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_InventoryDisclosureTextBlock_lbl">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl" xlink:title="label: InventoryDisclosureTextBlock to us-gaap_InventoryDisclosureTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_InventoryDisclosureTextBlock_lbl1">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl1" xlink:title="label: InventoryDisclosureTextBlock to us-gaap_InventoryDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_InventoryPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock_lbl">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_InventoryPolicyTextBlock_lbl1">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl1" xlink:title="label: InventoryPolicyTextBlock to us-gaap_InventoryPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_InventoryNet_lbl" xml:lang="en-US" id="us-gaap_InventoryNet_lbl">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet_lbl" xlink:title="label: InventoryNet to us-gaap_InventoryNet_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryNet_lbl1" xml:lang="en-US" id="us-gaap_InventoryNet_lbl1">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryNet" xlink:to="us-gaap_InventoryNet_lbl1" xlink:title="label: InventoryNet to us-gaap_InventoryNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xml:lang="en-US" id="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl">Finished goods</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" xlink:title="label: InventoryFinishedGoodsNetOfReserves to us-gaap_InventoryFinishedGoodsNetOfReserves_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves_lbl" xml:lang="en-US" id="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves_lbl">Raw materials and purchased component parts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves_lbl" xlink:title="label: InventoryRawMaterialsAndSuppliesNetOfReserves to us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="InventoryWorkInProcessNetOfReserves" xlink:title="InventoryWorkInProcessNetOfReserves" />
    <link:label xlink:type="resource" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_InventoryWorkInProcessNetOfReserves_lbl" xml:lang="en-US" id="us-gaap_InventoryWorkInProcessNetOfReserves_lbl">Work-in-process</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InventoryWorkInProcessNetOfReserves" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves_lbl" xlink:title="label: InventoryWorkInProcessNetOfReserves to us-gaap_InventoryWorkInProcessNetOfReserves_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="LesseeOperatingLeasesTextBlock" xlink:title="LesseeOperatingLeasesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeasesTextBlock_lbl">Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl" xlink:title="label: LesseeOperatingLeasesTextBlock to us-gaap_LesseeOperatingLeasesTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeasesTextBlock_lbl1">Lessee, Operating Leases [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock_lbl1" xlink:title="label: LesseeOperatingLeasesTextBlock to us-gaap_LesseeOperatingLeasesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl">Remaining lease terms</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" xlink:title="label: LesseeOperatingLeaseRemainingLeaseTerm to us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1">Lessee, Operating Lease, Remaining Lease Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRemainingLeaseTerm" xlink:to="us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" xlink:title="label: LesseeOperatingLeaseRemainingLeaseTerm to us-gaap_LesseeOperatingLeaseRemainingLeaseTerm_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_LesseeLeasesPolicyTextBlock_lbl">Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl" xlink:title="label: LesseeLeasesPolicyTextBlock to us-gaap_LesseeLeasesPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl">2027</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearFive to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearFive to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl">Thereafter</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl1">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl">2024</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearTwo to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearTwo to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="LesseeOperatingLeaseRenewalTerm" xlink:title="LesseeOperatingLeaseRenewalTerm" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl">Extension period for leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" xlink:title="label: LesseeOperatingLeaseRenewalTerm to us-gaap_LesseeOperatingLeaseRenewalTerm_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl1">Lessee, Operating Lease, Renewal Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm_lbl1" xlink:title="label: LesseeOperatingLeaseRenewalTerm to us-gaap_LesseeOperatingLeaseRenewalTerm_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl">2026</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearFour to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearFour to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl">2023</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl">2025</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearThree to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl1">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDueYearThree to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl">Less imputed interest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityUndiscountedExcessAmount to us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeaseDescriptionTable_lbl" xml:lang="en-US" id="us-gaap_LesseeLeaseDescriptionTable_lbl">Lessee, Lease, Description [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeaseDescriptionTable" xlink:to="us-gaap_LesseeLeaseDescriptionTable_lbl" xlink:title="label: LesseeLeaseDescriptionTable to us-gaap_LesseeLeaseDescriptionTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl">Maturity of Operating Lease Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityMaturityTableTextBlock to us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityMaturityTableTextBlock to us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xml:lang="en-US" id="us-gaap_LesseeLeaseDescriptionLineItems_lbl">Lessee, Lease, Description [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="us-gaap_LesseeLeaseDescriptionLineItems_lbl" xlink:title="label: LesseeLeaseDescriptionLineItems to us-gaap_LesseeLeaseDescriptionLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:label="LesseeOperatingLeaseDescriptionAbstract" xlink:title="LesseeOperatingLeaseDescriptionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl">Operating Lease Weighted Average Remaining Lease Term and Discount Rate [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl" xlink:title="label: LesseeOperatingLeaseDescriptionAbstract to us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1">Lessee, Operating Lease, Description [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" xlink:title="label: LesseeOperatingLeaseDescriptionAbstract to us-gaap_LesseeOperatingLeaseDescriptionAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl">Total undiscounted lease payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDue to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xml:lang="en-US" id="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" xlink:title="label: LesseeOperatingLeaseLiabilityPaymentsDue to us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LeaseholdImprovementsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LeaseholdImprovementsMember_lbl" xml:lang="en-US" id="us-gaap_LeaseholdImprovementsMember_lbl">Leasehold Improvements [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember_lbl" xlink:title="label: LeaseholdImprovementsMember to us-gaap_LeaseholdImprovementsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LeasesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LeasesAbstract_lbl" xml:lang="en-US" id="us-gaap_LeasesAbstract_lbl">Leases [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl" xlink:title="label: LeasesAbstract to us-gaap_LeasesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl">Liabilities and Shareholders' Equity:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:title="label: LiabilitiesAndStockholdersEquityAbstract to us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity_lbl">Total liabilities and shareholders' equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesAndStockholdersEquity_lbl1">Liabilities and Equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl1" xlink:title="label: LiabilitiesAndStockholdersEquity to us-gaap_LiabilitiesAndStockholdersEquity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_Liabilities_lbl" xml:lang="en-US" id="us-gaap_Liabilities_lbl">Total liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Liabilities" xlink:to="us-gaap_Liabilities_lbl" xlink:title="label: Liabilities to us-gaap_Liabilities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_Liabilities_lbl1" xml:lang="en-US" id="us-gaap_Liabilities_lbl1">Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Liabilities" xlink:to="us-gaap_Liabilities_lbl1" xlink:title="label: Liabilities to us-gaap_Liabilities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesNoncurrent_lbl" xml:lang="en-US" id="us-gaap_LiabilitiesNoncurrent_lbl">Total noncurrent liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl" xlink:title="label: LiabilitiesNoncurrent to us-gaap_LiabilitiesNoncurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesNoncurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesNoncurrent_lbl1">Liabilities, Noncurrent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl1" xlink:title="label: LiabilitiesNoncurrent to us-gaap_LiabilitiesNoncurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_LiabilitiesCurrent_lbl" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent_lbl">Total current liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrent_lbl1" xml:lang="en-US" id="us-gaap_LiabilitiesCurrent_lbl1">Liabilities, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl1" xlink:title="label: LiabilitiesCurrent to us-gaap_LiabilitiesCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LiabilitiesCurrentAbstract_lbl" xml:lang="en-US" id="us-gaap_LiabilitiesCurrentAbstract_lbl">Current liabilities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:title="label: LiabilitiesCurrentAbstract to us-gaap_LiabilitiesCurrentAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_LineOfCreditFacilityAbstract_lbl" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityAbstract_lbl">Borrowings [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityAbstract" xlink:to="us-gaap_LineOfCreditFacilityAbstract_lbl" xlink:title="label: LineOfCreditFacilityAbstract to us-gaap_LineOfCreditFacilityAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityAbstract_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityAbstract_lbl1">Line of Credit Facility [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityAbstract" xlink:to="us-gaap_LineOfCreditFacilityAbstract_lbl1" xlink:title="label: LineOfCreditFacilityAbstract to us-gaap_LineOfCreditFacilityAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl">Percentage fee on unused borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" xlink:title="label: LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage to us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" xlink:title="label: LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage to us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl">Additional borrowing capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" xlink:title="label: LineOfCreditFacilityRemainingBorrowingCapacity to us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1">Line of Credit Facility, Remaining Borrowing Capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" xlink:title="label: LineOfCreditFacilityRemainingBorrowingCapacity to us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl">Maximum borrowing capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:title="label: LineOfCreditFacilityMaximumBorrowingCapacity to us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xml:lang="en-US" id="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" xlink:title="label: LineOfCreditFacilityMaximumBorrowingCapacity to us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LinesOfCreditCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LinesOfCreditCurrent_lbl" xml:lang="en-US" id="us-gaap_LinesOfCreditCurrent_lbl">Current portion of revolving loan payable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LinesOfCreditCurrent" xlink:to="us-gaap_LinesOfCreditCurrent_lbl" xlink:title="label: LinesOfCreditCurrent to us-gaap_LinesOfCreditCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LitigationSettlementExpense" xlink:label="LitigationSettlementExpense" xlink:title="LitigationSettlementExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LitigationSettlementExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_LitigationSettlementExpense_lbl" xml:lang="en-US" id="us-gaap_LitigationSettlementExpense_lbl">Legal fees and settlement expenses associated with lawsuit (Note 10)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LitigationSettlementExpense" xlink:to="us-gaap_LitigationSettlementExpense_lbl" xlink:title="label: LitigationSettlementExpense to us-gaap_LitigationSettlementExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_LitigationSettlementExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_LitigationSettlementExpense_lbl1" xml:lang="en-US" id="us-gaap_LitigationSettlementExpense_lbl1">Litigation Settlement, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LitigationSettlementExpense" xlink:to="us-gaap_LitigationSettlementExpense_lbl1" xlink:title="label: LitigationSettlementExpense to us-gaap_LitigationSettlementExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MachineryAndEquipmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_MachineryAndEquipmentMember_lbl" xml:lang="en-US" id="us-gaap_MachineryAndEquipmentMember_lbl">Tooling, Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember_lbl" xlink:title="label: MachineryAndEquipmentMember to us-gaap_MachineryAndEquipmentMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MachineryAndEquipmentMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MachineryAndEquipmentMember_lbl1" xml:lang="en-US" id="us-gaap_MachineryAndEquipmentMember_lbl1">Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember_lbl1" xlink:title="label: MachineryAndEquipmentMember to us-gaap_MachineryAndEquipmentMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:label="MarketingAndAdvertisingExpenseAbstract" xlink:title="MarketingAndAdvertisingExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MarketingAndAdvertisingExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MarketingAndAdvertisingExpenseAbstract_lbl" xml:lang="en-US" id="us-gaap_MarketingAndAdvertisingExpenseAbstract_lbl">Advertising [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MarketingAndAdvertisingExpenseAbstract" xlink:to="us-gaap_MarketingAndAdvertisingExpenseAbstract_lbl" xlink:title="label: MarketingAndAdvertisingExpenseAbstract to us-gaap_MarketingAndAdvertisingExpenseAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MovementInValuationAllowancesAndReservesRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MovementInValuationAllowancesAndReservesRollForward_lbl" xml:lang="en-US" id="us-gaap_MovementInValuationAllowancesAndReservesRollForward_lbl">Valuation allowance [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="us-gaap_MovementInValuationAllowancesAndReservesRollForward_lbl" xlink:title="label: MovementInValuationAllowancesAndReservesRollForward to us-gaap_MovementInValuationAllowancesAndReservesRollForward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInExtendedProductWarrantyAccrualRollForward" xlink:label="MovementInExtendedProductWarrantyAccrualRollForward" xlink:title="MovementInExtendedProductWarrantyAccrualRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_MovementInExtendedProductWarrantyAccrualRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_MovementInExtendedProductWarrantyAccrualRollForward_lbl" xml:lang="en-US" id="us-gaap_MovementInExtendedProductWarrantyAccrualRollForward_lbl">Accrued product warranty liability [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MovementInExtendedProductWarrantyAccrualRollForward" xlink:to="us-gaap_MovementInExtendedProductWarrantyAccrualRollForward_lbl" xlink:title="label: MovementInExtendedProductWarrantyAccrualRollForward to us-gaap_MovementInExtendedProductWarrantyAccrualRollForward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NatureOfOperations" xlink:label="NatureOfOperations" xlink:title="NatureOfOperations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NatureOfOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NatureOfOperations_lbl" xml:lang="en-US" id="us-gaap_NatureOfOperations_lbl">Description of business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NatureOfOperations" xlink:to="us-gaap_NatureOfOperations_lbl" xlink:title="label: NatureOfOperations to us-gaap_NatureOfOperations_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:title="label: NetCashProvidedByUsedInFinancingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl">Net cash used in operating activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInOperatingActivities to us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl">Net cash (used in) provided by investing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInInvestingActivities to us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl">Net cash provided by financing activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" xlink:title="label: NetCashProvidedByUsedInFinancingActivities to us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:title="label: NetCashProvidedByUsedInInvestingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xml:lang="en-US" id="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:title="label: NetCashProvidedByUsedInOperatingActivitiesAbstract to us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NetIncomeLoss_lbl" xml:lang="en-US" id="us-gaap_NetIncomeLoss_lbl">Net loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NetIncomeLoss_lbl1" xml:lang="en-US" id="us-gaap_NetIncomeLoss_lbl1">Net loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl1" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl2" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_NetIncomeLoss_lbl2" xml:lang="en-US" id="us-gaap_NetIncomeLoss_lbl2">Net (loss) income</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl2" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss_lbl2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl3" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NetIncomeLoss_lbl3" xml:lang="en-US" id="us-gaap_NetIncomeLoss_lbl3">Net loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl3" xlink:title="label: NetIncomeLoss to us-gaap_NetIncomeLoss_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_lbl" xml:lang="en-US" id="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_lbl">Accounting Standards Update and Change in Accounting Principle [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_lbl" xlink:title="label: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_lbl" xml:lang="en-US" id="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_lbl">New Accounting Pronouncements or Change in Accounting Principle [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_lbl" xlink:title="label: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xml:lang="en-US" id="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl">Change in accounting principle</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:title="label: NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock to us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1">Accounting Standards Update and Change in Accounting Principle [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xlink:title="label: NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock to us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="NoncompeteAgreementsMember" xlink:title="NoncompeteAgreementsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NoncompeteAgreementsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NoncompeteAgreementsMember_lbl" xml:lang="en-US" id="us-gaap_NoncompeteAgreementsMember_lbl">Covenant Not to Compete [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember_lbl" xlink:title="label: NoncompeteAgreementsMember to us-gaap_NoncompeteAgreementsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_NonoperatingIncomeExpense_lbl" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense_lbl">Interest and other income (expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NonoperatingIncomeExpense_lbl1" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpense_lbl1">Nonoperating Income (Expense)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl1" xlink:title="label: NonoperatingIncomeExpense to us-gaap_NonoperatingIncomeExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="NonoperatingIncomeExpenseAbstract" xlink:title="NonoperatingIncomeExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xml:lang="en-US" id="us-gaap_NonoperatingIncomeExpenseAbstract_lbl">Interest and other income (expense):</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xlink:title="label: NonoperatingIncomeExpenseAbstract to us-gaap_NonoperatingIncomeExpenseAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="NontradeReceivablesCurrent" xlink:title="NontradeReceivablesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NontradeReceivablesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NontradeReceivablesCurrent_lbl" xml:lang="en-US" id="us-gaap_NontradeReceivablesCurrent_lbl">Employee retention credit receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NontradeReceivablesCurrent" xlink:to="us-gaap_NontradeReceivablesCurrent_lbl" xlink:title="label: NontradeReceivablesCurrent to us-gaap_NontradeReceivablesCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NontradeReceivablesCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NontradeReceivablesCurrent_lbl1" xml:lang="en-US" id="us-gaap_NontradeReceivablesCurrent_lbl1">Nontrade Receivables, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NontradeReceivablesCurrent" xlink:to="us-gaap_NontradeReceivablesCurrent_lbl1" xlink:title="label: NontradeReceivablesCurrent to us-gaap_NontradeReceivablesCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_NumberOfOperatingSegments_lbl" xml:lang="en-US" id="us-gaap_NumberOfOperatingSegments_lbl">Number of business segments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments_lbl" xlink:title="label: NumberOfOperatingSegments to us-gaap_NumberOfOperatingSegments_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_NumberOfOperatingSegments_lbl1" xml:lang="en-US" id="us-gaap_NumberOfOperatingSegments_lbl1">Number of operating segments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments_lbl1" xlink:title="label: NumberOfOperatingSegments to us-gaap_NumberOfOperatingSegments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl">Weighted average discount rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" xlink:title="label: OperatingLeaseWeightedAverageDiscountRatePercent to us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" xlink:title="label: OperatingLeaseWeightedAverageDiscountRatePercent to us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl">Weighted average remaining lease term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" xlink:title="label: OperatingLeaseWeightedAverageRemainingLeaseTerm1 to us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" xlink:title="label: OperatingLeaseWeightedAverageRemainingLeaseTerm1 to us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl">Lease liability, net of current portion</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:title="label: OperatingLeaseLiabilityNoncurrent to us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilityCurrent_lbl">Lease liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:title="label: OperatingLeaseLiabilityCurrent to us-gaap_OperatingLeaseLiabilityCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="OperatingLeaseLiabilitiesPaymentsDueAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl">Maturity of Operating Lease Liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" xlink:title="label: OperatingLeaseLiabilitiesPaymentsDueAbstract to us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1">Lessee, Operating Lease, Liability, to be Paid [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" xlink:title="label: OperatingLeaseLiabilitiesPaymentsDueAbstract to us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseLiability_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseLiability_lbl">Total lease liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl" xlink:title="label: OperatingLeaseLiability to us-gaap_OperatingLeaseLiability_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiability_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseLiability_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseLiability_lbl1">Operating Lease, Liability</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl1" xlink:title="label: OperatingLeaseLiability to us-gaap_OperatingLeaseLiability_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAsset_lbl">Right-of-use asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:title="label: OperatingLeaseRightOfUseAsset to us-gaap_OperatingLeaseRightOfUseAsset_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseRightOfUseAsset_lbl1">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl1" xlink:title="label: OperatingLeaseRightOfUseAsset to us-gaap_OperatingLeaseRightOfUseAsset_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments" xlink:label="OperatingLeasePayments" xlink:title="OperatingLeasePayments" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeasePayments_lbl" xml:lang="en-US" id="us-gaap_OperatingLeasePayments_lbl">Operating cash outflows from leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl" xlink:title="label: OperatingLeasePayments to us-gaap_OperatingLeasePayments_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeasePayments_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeasePayments_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeasePayments_lbl1">Operating Lease, Payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments_lbl1" xlink:title="label: OperatingLeasePayments to us-gaap_OperatingLeasePayments_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense" xlink:label="OperatingLeaseExpense" xlink:title="OperatingLeaseExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingLeaseExpense_lbl" xml:lang="en-US" id="us-gaap_OperatingLeaseExpense_lbl">Operating lease expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl" xlink:title="label: OperatingLeaseExpense to us-gaap_OperatingLeaseExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLeaseExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLeaseExpense_lbl1" xml:lang="en-US" id="us-gaap_OperatingLeaseExpense_lbl1">Operating Lease, Expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl1" xlink:title="label: OperatingLeaseExpense to us-gaap_OperatingLeaseExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_OperatingIncomeLoss_lbl" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss_lbl">Operating loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OperatingIncomeLoss_lbl1" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss_lbl1">Operating loss</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl1" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingIncomeLoss_lbl2" xml:lang="en-US" id="us-gaap_OperatingIncomeLoss_lbl2">Operating Income (Loss)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl2" xlink:title="label: OperatingIncomeLoss to us-gaap_OperatingIncomeLoss_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="OperatingExpensesAbstract" xlink:title="OperatingExpensesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingExpensesAbstract_lbl" xml:lang="en-US" id="us-gaap_OperatingExpensesAbstract_lbl">Operating expenses:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl" xlink:title="label: OperatingExpensesAbstract to us-gaap_OperatingExpensesAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_OperatingExpenses_lbl" xml:lang="en-US" id="us-gaap_OperatingExpenses_lbl">Operating expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl" xlink:title="label: OperatingExpenses to us-gaap_OperatingExpenses_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingExpenses_lbl1" xml:lang="en-US" id="us-gaap_OperatingExpenses_lbl1">Operating Expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl1" xlink:title="label: OperatingExpenses to us-gaap_OperatingExpenses_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xml:lang="en-US" id="us-gaap_OperatingLossCarryforwardsLineItems_lbl">Operating Loss Carryforwards [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="us-gaap_OperatingLossCarryforwardsLineItems_lbl" xlink:title="label: OperatingLossCarryforwardsLineItems to us-gaap_OperatingLossCarryforwardsLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OperatingLossCarryforwardsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OperatingLossCarryforwardsTable_lbl" xml:lang="en-US" id="us-gaap_OperatingLossCarryforwardsTable_lbl">Operating Loss Carryforwards [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsTable" xlink:to="us-gaap_OperatingLossCarryforwardsTable_lbl" xlink:title="label: OperatingLossCarryforwardsTable to us-gaap_OperatingLossCarryforwardsTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xml:lang="en-US" id="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl">Foreign currency translation adjustment, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:title="label: OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax to us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl1" xml:lang="en-US" id="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl1">Foreign currency translation adjustment, net of tax</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl1" xlink:title="label: OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax to us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="OtherIntangibleAssetsMember" xlink:title="OtherIntangibleAssetsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherIntangibleAssetsMember_lbl" xml:lang="en-US" id="us-gaap_OtherIntangibleAssetsMember_lbl">Other [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherIntangibleAssetsMember" xlink:to="us-gaap_OtherIntangibleAssetsMember_lbl" xlink:title="label: OtherIntangibleAssetsMember to us-gaap_OtherIntangibleAssetsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsNoncurrent_lbl" xml:lang="en-US" id="us-gaap_OtherAssetsNoncurrent_lbl">Other assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl" xlink:title="label: OtherAssetsNoncurrent to us-gaap_OtherAssetsNoncurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherAssetsCurrent_lbl" xml:lang="en-US" id="us-gaap_OtherAssetsCurrent_lbl">Other current assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl" xlink:title="label: OtherAssetsCurrent to us-gaap_OtherAssetsCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesCurrent_lbl" xml:lang="en-US" id="us-gaap_OtherLiabilitiesCurrent_lbl">Other</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesCurrent" xlink:to="us-gaap_OtherLiabilitiesCurrent_lbl" xlink:title="label: OtherLiabilitiesCurrent to us-gaap_OtherLiabilitiesCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesNoncurrent_lbl" xml:lang="en-US" id="us-gaap_OtherLiabilitiesNoncurrent_lbl">Other liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent_lbl" xlink:title="label: OtherLiabilitiesNoncurrent to us-gaap_OtherLiabilitiesNoncurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherNonoperatingIncomeExpense_lbl" xml:lang="en-US" id="us-gaap_OtherNonoperatingIncomeExpense_lbl">Other, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:title="label: OtherNonoperatingIncomeExpense to us-gaap_OtherNonoperatingIncomeExpense_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesMember" xlink:label="OtherLiabilitiesMember" xlink:title="OtherLiabilitiesMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_OtherLiabilitiesMember_lbl" xml:lang="en-US" id="us-gaap_OtherLiabilitiesMember_lbl">Other Liabilities [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OtherLiabilitiesMember" xlink:to="us-gaap_OtherLiabilitiesMember_lbl" xlink:title="label: OtherLiabilitiesMember to us-gaap_OtherLiabilitiesMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PrimeRateMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PrimeRateMember_lbl" xml:lang="en-US" id="us-gaap_PrimeRateMember_lbl">Prime Rate [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrimeRateMember" xlink:to="us-gaap_PrimeRateMember_lbl" xlink:title="label: PrimeRateMember to us-gaap_PrimeRateMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PatentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PatentsMember_lbl" xml:lang="en-US" id="us-gaap_PatentsMember_lbl">Patents [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PatentsMember" xlink:to="us-gaap_PatentsMember_lbl" xlink:title="label: PatentsMember to us-gaap_PatentsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PayablesAndAccrualsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PayablesAndAccrualsAbstract_lbl" xml:lang="en-US" id="us-gaap_PayablesAndAccrualsAbstract_lbl">Accrued liabilities [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PayablesAndAccrualsAbstract" xlink:to="us-gaap_PayablesAndAccrualsAbstract_lbl" xlink:title="label: PayablesAndAccrualsAbstract to us-gaap_PayablesAndAccrualsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" id="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl">Withholding taxes paid on stock issuance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" xlink:title="label: PaymentsRelatedToTaxWithholdingForShareBasedCompensation to us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xml:lang="en-US" id="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" xlink:title="label: PaymentsRelatedToTaxWithholdingForShareBasedCompensation to us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfLoanCosts_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:title="us-gaap_PaymentsOfLoanCosts_lbl" xml:lang="en-US" id="us-gaap_PaymentsOfLoanCosts_lbl">Payment of bank financing costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfLoanCosts" xlink:to="us-gaap_PaymentsOfLoanCosts_lbl" xlink:title="label: PaymentsOfLoanCosts to us-gaap_PaymentsOfLoanCosts_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfLoanCosts_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsOfLoanCosts_lbl1" xml:lang="en-US" id="us-gaap_PaymentsOfLoanCosts_lbl1">Payments of Loan Costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfLoanCosts" xlink:to="us-gaap_PaymentsOfLoanCosts_lbl1" xlink:title="label: PaymentsOfLoanCosts to us-gaap_PaymentsOfLoanCosts_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfStockIssuanceCosts" xlink:label="PaymentsOfStockIssuanceCosts" xlink:title="PaymentsOfStockIssuanceCosts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfStockIssuanceCosts_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsOfStockIssuanceCosts_lbl" xml:lang="en-US" id="us-gaap_PaymentsOfStockIssuanceCosts_lbl">Payment of common stock issuance costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfStockIssuanceCosts" xlink:to="us-gaap_PaymentsOfStockIssuanceCosts_lbl" xlink:title="label: PaymentsOfStockIssuanceCosts to us-gaap_PaymentsOfStockIssuanceCosts_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsOfStockIssuanceCosts_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsOfStockIssuanceCosts_lbl1" xml:lang="en-US" id="us-gaap_PaymentsOfStockIssuanceCosts_lbl1">Payments of Stock Issuance Costs</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsOfStockIssuanceCosts" xlink:to="us-gaap_PaymentsOfStockIssuanceCosts_lbl1" xlink:title="label: PaymentsOfStockIssuanceCosts to us-gaap_PaymentsOfStockIssuanceCosts_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl">Capital expenditures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xml:lang="en-US" id="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" xlink:title="label: PaymentsToAcquirePropertyPlantAndEquipment to us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameDomain_lbl" xml:lang="en-US" id="us-gaap_PlanNameDomain_lbl">Plan Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameDomain" xlink:to="us-gaap_PlanNameDomain_lbl" xlink:title="label: PlanNameDomain to us-gaap_PlanNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PlanNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PlanNameAxis_lbl" xml:lang="en-US" id="us-gaap_PlanNameAxis_lbl">Plan Name [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl" xlink:title="label: PlanNameAxis to us-gaap_PlanNameAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesIssued_lbl" xml:lang="en-US" id="us-gaap_PreferredStockSharesIssued_lbl">Preferred stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl" xlink:title="label: PreferredStockSharesIssued to us-gaap_PreferredStockSharesIssued_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xml:lang="en-US" id="us-gaap_PreferredStockParOrStatedValuePerShare_lbl">Preferred stock par value (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:title="label: PreferredStockParOrStatedValuePerShare to us-gaap_PreferredStockParOrStatedValuePerShare_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesAuthorized_lbl" xml:lang="en-US" id="us-gaap_PreferredStockSharesAuthorized_lbl">Preferred stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:title="label: PreferredStockSharesAuthorized to us-gaap_PreferredStockSharesAuthorized_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PreferredStockValue_lbl" xml:lang="en-US" id="us-gaap_PreferredStockValue_lbl">Preferred stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl" xlink:title="label: PreferredStockValue to us-gaap_PreferredStockValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockValue_lbl1" xml:lang="en-US" id="us-gaap_PreferredStockValue_lbl1">Preferred Stock, Value, Issued</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl1" xlink:title="label: PreferredStockValue to us-gaap_PreferredStockValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PreferredStockSharesOutstanding_lbl" xml:lang="en-US" id="us-gaap_PreferredStockSharesOutstanding_lbl">Preferred stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:title="label: PreferredStockSharesOutstanding to us-gaap_PreferredStockSharesOutstanding_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PrepaidTaxes_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PrepaidTaxes_lbl" xml:lang="en-US" id="us-gaap_PrepaidTaxes_lbl">Prepaid income taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrepaidTaxes" xlink:to="us-gaap_PrepaidTaxes_lbl" xlink:title="label: PrepaidTaxes to us-gaap_PrepaidTaxes_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="PriorPeriodReclassificationAdjustmentDescription" xlink:title="PriorPeriodReclassificationAdjustmentDescription" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl" xml:lang="en-US" id="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl">Change in accounting principle and Reclassificiations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl" xlink:title="label: PriorPeriodReclassificationAdjustmentDescription to us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl1" xml:lang="en-US" id="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl1">Reclassification, Comparability Adjustment [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl1" xlink:title="label: PriorPeriodReclassificationAdjustmentDescription to us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="ProceedsFromIssuanceOfCommonStock" xlink:title="ProceedsFromIssuanceOfCommonStock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xml:lang="en-US" id="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl">Proceeds from the issuance of common stock</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" xlink:title="label: ProceedsFromIssuanceOfCommonStock to us-gaap_ProceedsFromIssuanceOfCommonStock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl1" xml:lang="en-US" id="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl1">Proceeds from Public Offering</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromIssuanceOfCommonStock" xlink:to="us-gaap_ProceedsFromIssuanceOfCommonStock_lbl1" xlink:title="label: ProceedsFromIssuanceOfCommonStock to us-gaap_ProceedsFromIssuanceOfCommonStock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt" xlink:label="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:title="ProceedsFromIssuanceOfOtherLongTermDebt" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt_lbl" xml:lang="en-US" id="us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt_lbl">Long-term debt borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt_lbl" xlink:title="label: ProceedsFromIssuanceOfOtherLongTermDebt to us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ProceedsFromLinesOfCredit_lbl" xml:lang="en-US" id="us-gaap_ProceedsFromLinesOfCredit_lbl">Proceeds from bank borrowings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit_lbl" xlink:title="label: ProceedsFromLinesOfCredit to us-gaap_ProceedsFromLinesOfCredit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromLinesOfCredit_lbl1" xml:lang="en-US" id="us-gaap_ProceedsFromLinesOfCredit_lbl1">Proceeds from Lines of Credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit_lbl1" xlink:title="label: ProceedsFromLinesOfCredit to us-gaap_ProceedsFromLinesOfCredit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:title="ProceedsFromSaleOfPropertyPlantAndEquipment" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xml:lang="en-US" id="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl">Proceeds from the sale of fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" xlink:title="label: ProceedsFromSaleOfPropertyPlantAndEquipment to us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProceedsFromStockOptionsExercised_lbl" xml:lang="en-US" id="us-gaap_ProceedsFromStockOptionsExercised_lbl">Proceeds from stock option exercises</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl" xlink:title="label: ProceedsFromStockOptionsExercised to us-gaap_ProceedsFromStockOptionsExercised_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xml:lang="en-US" id="us-gaap_ProceedsFromStockOptionsExercised_lbl1">Cash received from exercise of stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl1" xlink:title="label: ProceedsFromStockOptionsExercised to us-gaap_ProceedsFromStockOptionsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityLineItems" xlink:label="ProductWarrantyLiabilityLineItems" xlink:title="ProductWarrantyLiabilityLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProductWarrantyLiabilityLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProductWarrantyLiabilityLineItems_lbl" xml:lang="en-US" id="us-gaap_ProductWarrantyLiabilityLineItems_lbl">Product Warranty Liability [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="us-gaap_ProductWarrantyLiabilityLineItems_lbl" xlink:title="label: ProductWarrantyLiabilityLineItems to us-gaap_ProductWarrantyLiabilityLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityTable" xlink:label="ProductWarrantyLiabilityTable" xlink:title="ProductWarrantyLiabilityTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProductWarrantyLiabilityTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProductWarrantyLiabilityTable_lbl" xml:lang="en-US" id="us-gaap_ProductWarrantyLiabilityTable_lbl">Product Warranty Liability [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductWarrantyLiabilityTable" xlink:to="us-gaap_ProductWarrantyLiabilityTable_lbl" xlink:title="label: ProductWarrantyLiabilityTable to us-gaap_ProductWarrantyLiabilityTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl">Estimated useful life</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" xlink:title="label: PropertyPlantAndEquipmentUsefulLife to us-gaap_PropertyPlantAndEquipmentUsefulLife_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl">Fixed assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" xlink:title="label: PropertyPlantAndEquipmentDisclosureTextBlock to us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentDisclosureTextBlock to us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentLineItems_lbl">Property, Plant and Equipment [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentLineItems_lbl" xlink:title="label: PropertyPlantAndEquipmentLineItems to us-gaap_PropertyPlantAndEquipmentLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="PropertyPlantAndEquipmentTextBlock" xlink:title="PropertyPlantAndEquipmentTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl">Fixed Assets, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" xlink:title="label: PropertyPlantAndEquipmentTextBlock to us-gaap_PropertyPlantAndEquipmentTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentTextBlock to us-gaap_PropertyPlantAndEquipmentTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl">Long-Lived Tangible Asset [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" xlink:title="label: PropertyPlantAndEquipmentByTypeAxis to us-gaap_PropertyPlantAndEquipmentByTypeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentAbstract_lbl">Fixed assets, net [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl" xlink:title="label: PropertyPlantAndEquipmentAbstract to us-gaap_PropertyPlantAndEquipmentAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentAbstract_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentAbstract_lbl1">Fixed assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl1" xlink:title="label: PropertyPlantAndEquipmentAbstract to us-gaap_PropertyPlantAndEquipmentAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNet_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet_lbl">Fixed assets, net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNet_lbl1">Property, Plant and Equipment, Net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl1" xlink:title="label: PropertyPlantAndEquipmentNet to us-gaap_PropertyPlantAndEquipmentNet_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentGross_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentGross_lbl">Fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl" xlink:title="label: PropertyPlantAndEquipmentGross to us-gaap_PropertyPlantAndEquipmentGross_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentGross_lbl1">Property, Plant and Equipment, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl1" xlink:title="label: PropertyPlantAndEquipmentGross to us-gaap_PropertyPlantAndEquipmentGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl">Fixed assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" xlink:title="label: PropertyPlantAndEquipmentPolicyTextBlock to us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" xlink:title="label: PropertyPlantAndEquipmentPolicyTextBlock to us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl">Long-Lived Tangible Asset [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" xlink:title="label: PropertyPlantAndEquipmentTypeDomain to us-gaap_PropertyPlantAndEquipmentTypeDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl">Fixed assets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl" xlink:title="label: PropertyPlantAndEquipmentNetByTypeAbstract to us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xml:lang="en-US" id="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1">Property, Plant and Equipment, Net, by Type [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" xlink:title="label: PropertyPlantAndEquipmentNetByTypeAbstract to us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="ProvisionForDoubtfulAccounts" xlink:title="ProvisionForDoubtfulAccounts" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ProvisionForDoubtfulAccounts_lbl" xml:lang="en-US" id="us-gaap_ProvisionForDoubtfulAccounts_lbl">Additions charged to costs and expenses</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl" xlink:title="label: ProvisionForDoubtfulAccounts to us-gaap_ProvisionForDoubtfulAccounts_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="QuarterlyFinancialInformationTextBlock" xlink:title="QuarterlyFinancialInformationTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_QuarterlyFinancialInformationTextBlock_lbl" xml:lang="en-US" id="us-gaap_QuarterlyFinancialInformationTextBlock_lbl">Quarterly results of operations (unaudited)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="QuarterlyFinancialInformationTextBlock" xlink:to="us-gaap_QuarterlyFinancialInformationTextBlock_lbl" xlink:title="label: QuarterlyFinancialInformationTextBlock to us-gaap_QuarterlyFinancialInformationTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_QuarterlyFinancialInformationDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_QuarterlyFinancialInformationDisclosureAbstract_lbl" xml:lang="en-US" id="us-gaap_QuarterlyFinancialInformationDisclosureAbstract_lbl">Quarterly results of operations (unaudited) [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="us-gaap_QuarterlyFinancialInformationDisclosureAbstract_lbl" xlink:title="label: QuarterlyFinancialInformationDisclosureAbstract to us-gaap_QuarterlyFinancialInformationDisclosureAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xml:lang="en-US" id="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl">Allowance for doubtful accounts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" xlink:title="label: ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy to us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl1" xml:lang="en-US" id="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl1">Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:to="us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl1" xlink:title="label: ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy to us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xml:lang="en-US" id="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl">Unrecognized tax benefits [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" xlink:title="label: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="RepaymentsOfLinesOfCredit" xlink:title="RepaymentsOfLinesOfCredit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_RepaymentsOfLinesOfCredit_lbl" xml:lang="en-US" id="us-gaap_RepaymentsOfLinesOfCredit_lbl">Revolving credit line payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RepaymentsOfLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLinesOfCredit_lbl" xlink:title="label: RepaymentsOfLinesOfCredit to us-gaap_RepaymentsOfLinesOfCredit_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLinesOfCredit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RepaymentsOfLinesOfCredit_lbl1" xml:lang="en-US" id="us-gaap_RepaymentsOfLinesOfCredit_lbl1">Repayments of Lines of Credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RepaymentsOfLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLinesOfCredit_lbl1" xlink:title="label: RepaymentsOfLinesOfCredit to us-gaap_RepaymentsOfLinesOfCredit_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:label="ResearchAndDevelopmentExpenseAbstract" xlink:title="ResearchAndDevelopmentExpenseAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl">Engineering, design and product development [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl" xlink:title="label: ResearchAndDevelopmentExpenseAbstract to us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1">Research and Development Expense [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" xlink:title="label: ResearchAndDevelopmentExpenseAbstract to us-gaap_ResearchAndDevelopmentExpenseAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpense_lbl" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpense_lbl">Engineering, design and product development</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:title="label: ResearchAndDevelopmentExpense to us-gaap_ResearchAndDevelopmentExpense_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpense_lbl1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpense_lbl1">Research and development expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl1" xlink:title="label: ResearchAndDevelopmentExpense to us-gaap_ResearchAndDevelopmentExpense_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchMember_lbl" xml:lang="en-US" id="us-gaap_ResearchMember_lbl">R&amp;D Credit [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchMember" xlink:to="us-gaap_ResearchMember_lbl" xlink:title="label: ResearchMember to us-gaap_ResearchMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="ResearchAndDevelopmentExpensePolicy" xlink:title="ResearchAndDevelopmentExpensePolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl">Engineering, design and product development</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" xlink:title="label: ResearchAndDevelopmentExpensePolicy to us-gaap_ResearchAndDevelopmentExpensePolicy_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xml:lang="en-US" id="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" xlink:title="label: ResearchAndDevelopmentExpensePolicy to us-gaap_ResearchAndDevelopmentExpensePolicy_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RestrictedStockUnitsRSUMember_lbl" xml:lang="en-US" id="us-gaap_RestrictedStockUnitsRSUMember_lbl">Restricted Share Units [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:title="label: RestrictedStockUnitsRSUMember to us-gaap_RestrictedStockUnitsRSUMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xml:lang="en-US" id="us-gaap_RetainedEarningsAccumulatedDeficit_lbl">Retained earnings</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:title="label: RetainedEarningsAccumulatedDeficit to us-gaap_RetainedEarningsAccumulatedDeficit_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RetainedEarningsMember_lbl" xml:lang="en-US" id="us-gaap_RetainedEarningsMember_lbl">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl" xlink:title="label: RetainedEarningsMember to us-gaap_RetainedEarningsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueRemainingPerformanceObligation_lbl" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligation_lbl">Remaining performance obligations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:title="label: RevenueRemainingPerformanceObligation to us-gaap_RevenueRemainingPerformanceObligation_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligation_lbl1">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl1" xlink:title="label: RevenueRemainingPerformanceObligation to us-gaap_RevenueRemainingPerformanceObligation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl">Net sales</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:title="label: RevenueFromContractWithCustomerExcludingAssessedTax to us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuePerformanceObligationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenuePerformanceObligationAbstract_lbl" xml:lang="en-US" id="us-gaap_RevenuePerformanceObligationAbstract_lbl">Remaining performance obligations [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="us-gaap_RevenuePerformanceObligationAbstract_lbl" xlink:title="label: RevenuePerformanceObligationAbstract to us-gaap_RevenuePerformanceObligationAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xml:lang="en-US" id="us-gaap_RevenuePerformanceObligationAbstract_lbl1">Revenue, Performance Obligation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="us-gaap_RevenuePerformanceObligationAbstract_lbl1" xlink:title="label: RevenuePerformanceObligationAbstract to us-gaap_RevenuePerformanceObligationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl">Expected timing of satisfaction, period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xml:lang="en-US" id="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xlink:title="label: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl">Revenue recognition</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" xlink:title="label: RevenueFromContractWithCustomerPolicyTextBlock to us-gaap_RevenueFromContractWithCustomerPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xml:lang="en-US" id="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" xlink:title="label: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_RisksAndUncertaintiesAbstract_lbl" xml:lang="en-US" id="us-gaap_RisksAndUncertaintiesAbstract_lbl">Concentration of credit risk [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract_lbl" xlink:title="label: RisksAndUncertaintiesAbstract to us-gaap_RisksAndUncertaintiesAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xml:lang="en-US" id="us-gaap_RisksAndUncertaintiesAbstract_lbl1">Risks and Uncertainties [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract_lbl1" xlink:title="label: RisksAndUncertaintiesAbstract to us-gaap_RisksAndUncertaintiesAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl">Options vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl">Term of award</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl">Restricted stock units vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl">Expected option term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl">Options exercisable, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl">Fair value of all awards vested</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl">Weighted average fair value of grants (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl">Options exercisable, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xml:lang="en-US" id="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" xlink:title="label: SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 to us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentsGeographicalAreasAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SegmentsGeographicalAreasAbstract_lbl" xml:lang="en-US" id="us-gaap_SegmentsGeographicalAreasAbstract_lbl">Geographical area information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="us-gaap_SegmentsGeographicalAreasAbstract_lbl" xlink:title="label: SegmentsGeographicalAreasAbstract to us-gaap_SegmentsGeographicalAreasAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentsGeographicalAreasAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentsGeographicalAreasAbstract_lbl1" xml:lang="en-US" id="us-gaap_SegmentsGeographicalAreasAbstract_lbl1">Segments, Geographical Areas [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="us-gaap_SegmentsGeographicalAreasAbstract_lbl1" xlink:title="label: SegmentsGeographicalAreasAbstract to us-gaap_SegmentsGeographicalAreasAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SalesRevenueNetMember_lbl" xml:lang="en-US" id="us-gaap_SalesRevenueNetMember_lbl">Sales [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember_lbl" xlink:title="label: SalesRevenueNetMember to us-gaap_SalesRevenueNetMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="ScheduleOfQuarterlyFinancialInformationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl">Quarterly Results of Operations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl" xlink:title="label: ScheduleOfQuarterlyFinancialInformationTableTextBlock to us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1">Quarterly Financial Information [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" xlink:title="label: ScheduleOfQuarterlyFinancialInformationTableTextBlock to us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" xlink:title="label: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl">Assumptions Used in Option Valuation Calculations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" xlink:title="label: ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock to us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl">Stock Option Activity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:title="label: ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock to us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_lbl">Net Sales and Fixed Assets by Geographic Area</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:to="us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_lbl" xlink:title="label: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock to us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl">Earnings per Share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:title="label: ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock to us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" xlink:title="label: ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock to us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl">Identifiable Intangible Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:title="label: ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock to us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl">Inventories</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" xlink:title="label: ScheduleOfInventoryCurrentTableTextBlock to us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl">Components of Income Tax Benefit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" xlink:title="label: ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock to us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" xlink:title="label: ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock to us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl">Statutory to Effective Tax Rate Reconciliation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" xlink:title="label: ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock to us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" xlink:title="label: ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock to us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:title="label: ScheduleOfFiniteLivedIntangibleAssetsTable to us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl">Deferred Tax Assets and Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" xlink:title="label: ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock to us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:label="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl">Allowance for Doubtful Accounts</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl" xlink:title="label: ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock to us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1">Financing Receivable, Current, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" xlink:title="label: ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock to us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xlink:title="label: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl">Accrued Liabilities</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" xlink:title="label: ScheduleOfAccruedLiabilitiesTableTextBlock to us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" xlink:title="label: ScheduleOfAccruedLiabilitiesTableTextBlock to us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:label="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:title="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable_lbl">Schedule of Deferred Compensation Arrangement with Individual, Share-based Payments [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:to="us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable_lbl" xlink:title="label: ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable to us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" xlink:title="label: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl">Financial Statement Line Items Impacted by Change in Accounting Principle</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" xlink:title="label: ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock to us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1">Accounting Standards Update and Change in Accounting Principle [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" xlink:title="label: ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock to us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl">Property, Plant and Equipment [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" xlink:title="label: ScheduleOfPropertyPlantAndEquipmentTable to us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xml:lang="en-US" id="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:title="label: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xml:lang="en-US" id="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl">Concentration of Credit Risk</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" xlink:title="label: SchedulesOfConcentrationOfRiskByRiskFactorTextBlock to us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1">Schedules of Concentration of Risk, by Risk Factor [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:to="us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" xlink:title="label: SchedulesOfConcentrationOfRiskByRiskFactorTextBlock to us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SecuredDebt_lbl" xml:lang="en-US" id="us-gaap_SecuredDebt_lbl">Balance outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecuredDebt" xlink:to="us-gaap_SecuredDebt_lbl" xlink:title="label: SecuredDebt to us-gaap_SecuredDebt_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SecuredDebt_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SecuredDebt_lbl1" xml:lang="en-US" id="us-gaap_SecuredDebt_lbl1">Secured Debt</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecuredDebt" xlink:to="us-gaap_SecuredDebt_lbl1" xlink:title="label: SecuredDebt to us-gaap_SecuredDebt_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="SegmentReportingDisclosureTextBlock" xlink:title="SegmentReportingDisclosureTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xml:lang="en-US" id="us-gaap_SegmentReportingDisclosureTextBlock_lbl">Geographic area information</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:title="label: SegmentReportingDisclosureTextBlock to us-gaap_SegmentReportingDisclosureTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="SegmentReportingPolicyPolicyTextBlock" xlink:title="SegmentReportingPolicyPolicyTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl" xml:lang="en-US" id="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl">Segment reporting</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingPolicyPolicyTextBlock" xlink:to="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl" xlink:title="label: SegmentReportingPolicyPolicyTextBlock to us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SegmentReportingAbstract_lbl" xml:lang="en-US" id="us-gaap_SegmentReportingAbstract_lbl">Segment reporting [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl" xlink:title="label: SegmentReportingAbstract to us-gaap_SegmentReportingAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SegmentReportingAbstract_lbl1" xml:lang="en-US" id="us-gaap_SegmentReportingAbstract_lbl1">Geographic area information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl1" xlink:title="label: SegmentReportingAbstract to us-gaap_SegmentReportingAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SellingAndMarketingExpense_lbl" xml:lang="en-US" id="us-gaap_SellingAndMarketingExpense_lbl">Selling and marketing</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl" xlink:title="label: SellingAndMarketingExpense to us-gaap_SellingAndMarketingExpense_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SeriesAPreferredStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SeriesAPreferredStockMember_lbl" xml:lang="en-US" id="us-gaap_SeriesAPreferredStockMember_lbl">Series A Preferred Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SeriesAPreferredStockMember" xlink:to="us-gaap_SeriesAPreferredStockMember_lbl" xlink:title="label: SeriesAPreferredStockMember to us-gaap_SeriesAPreferredStockMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl">Forfeited (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl">Forfeited (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl">Vesting period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl">Exercised (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl">Granted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl">Number of Units [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl">Forfeited (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl">Weighted Average Grant Stock Price [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl">Equity Awards Vested and Expected to Vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl">Expired (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl">Exercised (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl">Outstanding, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl1">Outstanding, beginning of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl">Granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl">Restricted stock units vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Outstanding, Weighted Average Remaining Contractual Terms</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl">Expired (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl">Granted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Granted</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl">Weighted Average Exercise Price [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl" xml:lang="en-US" id="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl">Stock incentive plans [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl" xlink:title="label: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1">Share-Based Payment Arrangement, Disclosure [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" xlink:title="label: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl">Outstanding, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl1">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensation_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensation_lbl">Share-based compensation expense</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl" xlink:title="label: ShareBasedCompensation to us-gaap_ShareBasedCompensation_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl">Granted (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationAbstract_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationAbstract_lbl">Share-based compensation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationAbstract" xlink:to="us-gaap_ShareBasedCompensationAbstract_lbl" xlink:title="label: ShareBasedCompensationAbstract to us-gaap_ShareBasedCompensationAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract_lbl">Assumptions used in valuation model [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl">Number of shares available for grant (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl">Options exercisable, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl">Intrinsic value of stock options exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl">Options exercisable, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl">Number of shares authorized (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl">Expected volatility</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl">Risk-free interest rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl">Dividend yield</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl">Options vested and expected to vest</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl">Options vested or expected to vest (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl">Options vested or expected to vest (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl">Outstanding, beginning of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl1">Outstanding, end of period (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl">Outstanding, end of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl1">Outstanding, beginning of period (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl">Forfeited (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl">Expired (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl">Number of Shares [Roll Forward]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl">Equity Award [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" xlink:title="label: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xml:lang="en-US" id="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl">Share-based payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" xlink:title="label: ShareBasedCompensationOptionAndIncentivePlansPolicy to us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xml:lang="en-US" id="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl">Relinquishments of stock options and deferred stock units to pay withholding taxes (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" xlink:title="label: SharesPaidForTaxWithholdingForShareBasedCompensation to us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xml:lang="en-US" id="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1">Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" xlink:title="label: SharesPaidForTaxWithholdingForShareBasedCompensation to us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StateAndLocalJurisdictionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StateAndLocalJurisdictionMember_lbl" xml:lang="en-US" id="us-gaap_StateAndLocalJurisdictionMember_lbl">State [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember_lbl" xlink:title="label: StateAndLocalJurisdictionMember to us-gaap_StateAndLocalJurisdictionMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StateAndLocalJurisdictionMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StateAndLocalJurisdictionMember_lbl1" xml:lang="en-US" id="us-gaap_StateAndLocalJurisdictionMember_lbl1">State and Local Jurisdiction [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember_lbl1" xlink:title="label: StateAndLocalJurisdictionMember to us-gaap_StateAndLocalJurisdictionMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfFinancialPositionAbstract_lbl" xml:lang="en-US" id="us-gaap_StatementOfFinancialPositionAbstract_lbl">CONSOLIDATED BALANCE SHEETS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:title="label: StatementOfFinancialPositionAbstract to us-gaap_StatementOfFinancialPositionAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StatementOfFinancialPositionAbstract_lbl1" xml:lang="en-US" id="us-gaap_StatementOfFinancialPositionAbstract_lbl1">Consolidated Balance Sheets [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl1" xlink:title="label: StatementOfFinancialPositionAbstract to us-gaap_StatementOfFinancialPositionAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xml:lang="en-US" id="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl">CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xlink:title="label: StatementOfIncomeAndComprehensiveIncomeAbstract to us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl1" xml:lang="en-US" id="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl1">Consolidated Statements of Comprehensive Loss [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl1" xlink:title="label: StatementOfIncomeAndComprehensiveIncomeAbstract to us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementClassOfStockAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementClassOfStockAxis_lbl" xml:lang="en-US" id="us-gaap_StatementClassOfStockAxis_lbl">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis_lbl" xlink:title="label: StatementClassOfStockAxis to us-gaap_StatementClassOfStockAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementEquityComponentsAxis_lbl" xml:lang="en-US" id="us-gaap_StatementEquityComponentsAxis_lbl">Equity Components [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl" xlink:title="label: StatementEquityComponentsAxis to us-gaap_StatementEquityComponentsAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementLineItems_lbl" xml:lang="en-US" id="us-gaap_StatementLineItems_lbl">Statement [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl" xlink:title="label: StatementLineItems to us-gaap_StatementLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfCashFlowsAbstract_lbl" xml:lang="en-US" id="us-gaap_StatementOfCashFlowsAbstract_lbl">CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:title="label: StatementOfCashFlowsAbstract to us-gaap_StatementOfCashFlowsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StatementOfCashFlowsAbstract_lbl1" xml:lang="en-US" id="us-gaap_StatementOfCashFlowsAbstract_lbl1">Consolidated Statements of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl1" xlink:title="label: StatementOfCashFlowsAbstract to us-gaap_StatementOfCashFlowsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementTable_lbl" xml:lang="en-US" id="us-gaap_StatementTable_lbl">Statement [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementTable" xlink:to="us-gaap_StatementTable_lbl" xlink:title="label: StatementTable to us-gaap_StatementTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xml:lang="en-US" id="us-gaap_StatementOfStockholdersEquityAbstract_lbl">CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:title="label: StatementOfStockholdersEquityAbstract to us-gaap_StatementOfStockholdersEquityAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StatementOfStockholdersEquityAbstract_lbl1" xml:lang="en-US" id="us-gaap_StatementOfStockholdersEquityAbstract_lbl1">Consolidated Statements of Changes in Shareholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl1" xlink:title="label: StatementOfStockholdersEquityAbstract to us-gaap_StatementOfStockholdersEquityAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockCompensationPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockCompensationPlanMember_lbl" xml:lang="en-US" id="us-gaap_StockCompensationPlanMember_lbl">Stock Awards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockCompensationPlanMember" xlink:to="us-gaap_StockCompensationPlanMember_lbl" xlink:title="label: StockCompensationPlanMember to us-gaap_StockCompensationPlanMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl" xml:lang="en-US" id="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl">Relinquishments of stock options and deferred stock units to pay withholding taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:to="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl" xlink:title="label: StockGrantedDuringPeriodValueSharebasedCompensationForfeited to us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xml:lang="en-US" id="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1">Shares Granted, Value, Share-Based Payment Arrangement, Forfeited</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:to="us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" xlink:title="label: StockGrantedDuringPeriodValueSharebasedCompensationForfeited to us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="StockIssuedDuringPeriodSharesNewIssues" xlink:title="StockIssuedDuringPeriodSharesNewIssues" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl">Issuance of common stock, net of issuance cost (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" xlink:title="label: StockIssuedDuringPeriodSharesNewIssues to us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl1">Shares sold in Public Offering (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl1" xlink:title="label: StockIssuedDuringPeriodSharesNewIssues to us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl">Issuance of common stock on restricted stock units (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1">Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" xlink:title="label: StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="StockIssuedDuringPeriodValueNewIssues" xlink:title="StockIssuedDuringPeriodValueNewIssues" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl">Issuance of common stock, net of issuance cost</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" xlink:title="label: StockIssuedDuringPeriodValueNewIssues to us-gaap_StockIssuedDuringPeriodValueNewIssues_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl">Issuance of shares from exercise of stock options</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:title="label: StockIssuedDuringPeriodValueStockOptionsExercised to us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" xlink:title="label: StockIssuedDuringPeriodValueStockOptionsExercised to us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="StockRepurchasedDuringPeriodShares" xlink:title="StockRepurchasedDuringPeriodShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xml:lang="en-US" id="us-gaap_StockRepurchasedDuringPeriodShares_lbl">Common stock repurchased (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:title="label: StockRepurchasedDuringPeriodShares to us-gaap_StockRepurchasedDuringPeriodShares_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl">Issuance of common stock on restricted stock units</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl" xlink:title="label: StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1">Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:to="us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" xlink:title="label: StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures to us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl">Exercised (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:title="label: StockIssuedDuringPeriodSharesStockOptionsExercised to us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl1" xml:lang="en-US" id="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl1">Issuance of shares from exercise of stock options (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl1" xlink:title="label: StockIssuedDuringPeriodSharesStockOptionsExercised to us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="StockRepurchasedDuringPeriodValue" xlink:title="StockRepurchasedDuringPeriodValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xml:lang="en-US" id="us-gaap_StockRepurchasedDuringPeriodValue_lbl">Value of common stock repurchased</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:title="label: StockRepurchasedDuringPeriodValue to us-gaap_StockRepurchasedDuringPeriodValue_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_StockholdersEquity_lbl" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl">Total shareholders' equity</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_StockholdersEquity_lbl1" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl1">Ending balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl1" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl2" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_StockholdersEquity_lbl2" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl2">Beginning balance</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl2" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl2" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl3" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquity_lbl3" xml:lang="en-US" id="us-gaap_StockholdersEquity_lbl3">Stockholders' Equity Attributable to Parent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl3" xlink:title="label: StockholdersEquity to us-gaap_StockholdersEquity_lbl3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_StockholdersEquityAbstract_lbl" xml:lang="en-US" id="us-gaap_StockholdersEquityAbstract_lbl">Shareholders' equity:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl" xlink:title="label: StockholdersEquityAbstract to us-gaap_StockholdersEquityAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="SubsequentEventsTextBlock" xlink:title="SubsequentEventsTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SubsequentEventsTextBlock_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventsTextBlock_lbl">Subsequent events</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl" xlink:title="label: SubsequentEventsTextBlock to us-gaap_SubsequentEventsTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventsTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SubsequentEventsTextBlock_lbl1">Subsequent Events [Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl1" xlink:title="label: SubsequentEventsTextBlock to us-gaap_SubsequentEventsTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTable" xlink:label="SubsequentEventTable" xlink:title="SubsequentEventTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventTable_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventTable_lbl">Subsequent Event [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventTable" xlink:to="us-gaap_SubsequentEventTable_lbl" xlink:title="label: SubsequentEventTable to us-gaap_SubsequentEventTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain" xlink:title="SubsequentEventTypeDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventTypeDomain_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventTypeDomain_lbl">Subsequent Event Type [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl" xlink:title="label: SubsequentEventTypeDomain to us-gaap_SubsequentEventTypeDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="SubsequentEventMember" xlink:title="SubsequentEventMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventMember_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventMember_lbl">Subsequent Event [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl" xlink:title="label: SubsequentEventMember to us-gaap_SubsequentEventMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="SubsequentEventTypeAxis" xlink:title="SubsequentEventTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventTypeAxis_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventTypeAxis_lbl">Subsequent Event Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl" xlink:title="label: SubsequentEventTypeAxis to us-gaap_SubsequentEventTypeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventLineItems" xlink:label="SubsequentEventLineItems" xlink:title="SubsequentEventLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventLineItems_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventLineItems_lbl">Subsequent Event [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventLineItems" xlink:to="us-gaap_SubsequentEventLineItems_lbl" xlink:title="label: SubsequentEventLineItems to us-gaap_SubsequentEventLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="SubsequentEventsAbstract" xlink:title="SubsequentEventsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SubsequentEventsAbstract_lbl" xml:lang="en-US" id="us-gaap_SubsequentEventsAbstract_lbl">Subsequent events [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl" xlink:title="label: SubsequentEventsAbstract to us-gaap_SubsequentEventsAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:label="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:title="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl" xml:lang="en-US" id="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl">Unrecognized Tax Benefits</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:to="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl" xlink:title="label: SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock to us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl1" xml:lang="en-US" id="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl1">Summary of Positions for which Significant Change in Unrecognized Tax Benefits is Reasonably Possible [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:to="us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl1" xlink:title="label: SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock to us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:label="SummaryOfValuationAllowanceTextBlock" xlink:title="SummaryOfValuationAllowanceTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SummaryOfValuationAllowanceTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SummaryOfValuationAllowanceTextBlock_lbl" xml:lang="en-US" id="us-gaap_SummaryOfValuationAllowanceTextBlock_lbl">Valuation Allowance on Deferred Tax Assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SummaryOfValuationAllowanceTextBlock" xlink:to="us-gaap_SummaryOfValuationAllowanceTextBlock_lbl" xlink:title="label: SummaryOfValuationAllowanceTextBlock to us-gaap_SummaryOfValuationAllowanceTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="SupplementalCashFlowInformationAbstract" xlink:title="SupplementalCashFlowInformationAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xml:lang="en-US" id="us-gaap_SupplementalCashFlowInformationAbstract_lbl">Supplemental cash flow information:</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:title="label: SupplementalCashFlowInformationAbstract to us-gaap_SupplementalCashFlowInformationAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xml:lang="en-US" id="us-gaap_SupplementalCashFlowInformationAbstract_lbl1">Supplemental Cash Flow Information [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl1" xlink:title="label: SupplementalCashFlowInformationAbstract to us-gaap_SupplementalCashFlowInformationAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxCreditCarryforwardNameDomain_lbl" xml:lang="en-US" id="us-gaap_TaxCreditCarryforwardNameDomain_lbl">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain_lbl" xlink:title="label: TaxCreditCarryforwardNameDomain to us-gaap_TaxCreditCarryforwardNameDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxCreditCarryforwardAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxCreditCarryforwardAxis_lbl" xml:lang="en-US" id="us-gaap_TaxCreditCarryforwardAxis_lbl">Tax Credit Carryforward [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardAxis_lbl" xlink:title="label: TaxCreditCarryforwardAxis to us-gaap_TaxCreditCarryforwardAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxesPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_TaxesPayableCurrent_lbl" xml:lang="en-US" id="us-gaap_TaxesPayableCurrent_lbl">Taxes</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent_lbl" xlink:title="label: TaxesPayableCurrent to us-gaap_TaxesPayableCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TaxesPayableCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TaxesPayableCurrent_lbl1" xml:lang="en-US" id="us-gaap_TaxesPayableCurrent_lbl1">Taxes Payable, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxesPayableCurrent" xlink:to="us-gaap_TaxesPayableCurrent_lbl1" xlink:title="label: TaxesPayableCurrent to us-gaap_TaxesPayableCurrent_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xml:lang="en-US" id="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl">Purchased Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TechnologyBasedIntangibleAssetsMember" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:title="label: TechnologyBasedIntangibleAssetsMember to us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ToolsDiesAndMoldsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ToolsDiesAndMoldsMember_lbl" xml:lang="en-US" id="us-gaap_ToolsDiesAndMoldsMember_lbl">Tooling [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ToolsDiesAndMoldsMember" xlink:to="us-gaap_ToolsDiesAndMoldsMember_lbl" xlink:title="label: ToolsDiesAndMoldsMember to us-gaap_ToolsDiesAndMoldsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember" xlink:label="TrademarksMember" xlink:title="TrademarksMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TrademarksMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_TrademarksMember_lbl" xml:lang="en-US" id="us-gaap_TrademarksMember_lbl">Trademark [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TrademarksMember" xlink:to="us-gaap_TrademarksMember_lbl" xlink:title="label: TrademarksMember to us-gaap_TrademarksMember_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TrademarksMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TrademarksMember_lbl1" xml:lang="en-US" id="us-gaap_TrademarksMember_lbl1">Trademarks [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TrademarksMember" xlink:to="us-gaap_TrademarksMember_lbl1" xlink:title="label: TrademarksMember to us-gaap_TrademarksMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockValue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_TreasuryStockValue_lbl" xml:lang="en-US" id="us-gaap_TreasuryStockValue_lbl">Treasury stock, 4,044,842 shares, at cost</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue_lbl" xlink:title="label: TreasuryStockValue to us-gaap_TreasuryStockValue_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockValue_lbl1" xml:lang="en-US" id="us-gaap_TreasuryStockValue_lbl1">Treasury Stock, Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue_lbl1" xlink:title="label: TreasuryStockValue to us-gaap_TreasuryStockValue_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockTextBlock" xlink:label="TreasuryStockTextBlock" xlink:title="TreasuryStockTextBlock" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockTextBlock_lbl" xml:lang="en-US" id="us-gaap_TreasuryStockTextBlock_lbl">Stock repurchase program</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockTextBlock" xlink:to="us-gaap_TreasuryStockTextBlock_lbl" xlink:title="label: TreasuryStockTextBlock to us-gaap_TreasuryStockTextBlock_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockMember" xlink:label="TreasuryStockMember" xlink:title="TreasuryStockMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockMember_lbl" xml:lang="en-US" id="us-gaap_TreasuryStockMember_lbl">Treasury Stock [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockMember" xlink:to="us-gaap_TreasuryStockMember_lbl" xlink:title="label: TreasuryStockMember to us-gaap_TreasuryStockMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockShares" xlink:label="TreasuryStockShares" xlink:title="TreasuryStockShares" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockShares_lbl" xml:lang="en-US" id="us-gaap_TreasuryStockShares_lbl">Treasury stock (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockShares" xlink:to="us-gaap_TreasuryStockShares_lbl" xlink:title="label: TreasuryStockShares to us-gaap_TreasuryStockShares_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="TreasuryStockAcquiredAverageCostPerShare" xlink:title="TreasuryStockAcquiredAverageCostPerShare" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xml:lang="en-US" id="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl">Average purchase price of common stock repurchased (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xlink:title="label: TreasuryStockAcquiredAverageCostPerShare to us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xml:lang="en-US" id="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1">Treasury Stock Acquired, Average Cost Per Share</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" xlink:title="label: TreasuryStockAcquiredAverageCostPerShare to us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_lbl" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_lbl">Tax positions taken during the current period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:to="us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_lbl" xlink:title="label: UnrecognizedTaxBenefitsPeriodIncreaseDecrease to us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl">Lapse of statute of limitations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" xlink:title="label: UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations to us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1">Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" xlink:title="label: UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations to us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:title="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl">Unrecognized tax benefits that would favorably affect effective income tax rate if recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" xlink:title="label: UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate to us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl1">Unrecognized Tax Benefits that Would Impact Effective Tax Rate</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:to="us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl1" xlink:title="label: UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate to us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits" xlink:title="UnrecognizedTaxBenefits" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_UnrecognizedTaxBenefits_lbl" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits_lbl">Unrecognized tax benefits, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_UnrecognizedTaxBenefits_lbl1" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits_lbl1">Unrecognized tax benefits, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl1" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnrecognizedTaxBenefits_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnrecognizedTaxBenefits_lbl2" xml:lang="en-US" id="us-gaap_UnrecognizedTaxBenefits_lbl2">Unrecognized Tax Benefits</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits_lbl2" xlink:title="label: UnrecognizedTaxBenefits to us-gaap_UnrecognizedTaxBenefits_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemAxis" xlink:label="UnusualOrInfrequentItemAxis" xlink:title="UnusualOrInfrequentItemAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnusualOrInfrequentItemAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnusualOrInfrequentItemAxis_lbl" xml:lang="en-US" id="us-gaap_UnusualOrInfrequentItemAxis_lbl">Unusual or Infrequent Item, or Both [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnusualOrInfrequentItemAxis" xlink:to="us-gaap_UnusualOrInfrequentItemAxis_lbl" xlink:title="label: UnusualOrInfrequentItemAxis to us-gaap_UnusualOrInfrequentItemAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemLineItems" xlink:label="UnusualOrInfrequentItemLineItems" xlink:title="UnusualOrInfrequentItemLineItems" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnusualOrInfrequentItemLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnusualOrInfrequentItemLineItems_lbl" xml:lang="en-US" id="us-gaap_UnusualOrInfrequentItemLineItems_lbl">Unusual or Infrequent Item, or Both [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="us-gaap_UnusualOrInfrequentItemLineItems_lbl" xlink:title="label: UnusualOrInfrequentItemLineItems to us-gaap_UnusualOrInfrequentItemLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemDomain" xlink:label="UnusualOrInfrequentItemDomain" xlink:title="UnusualOrInfrequentItemDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnusualOrInfrequentItemDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnusualOrInfrequentItemDomain_lbl" xml:lang="en-US" id="us-gaap_UnusualOrInfrequentItemDomain_lbl">Unusual or Infrequent Item, or Both [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnusualOrInfrequentItemDomain" xlink:to="us-gaap_UnusualOrInfrequentItemDomain_lbl" xlink:title="label: UnusualOrInfrequentItemDomain to us-gaap_UnusualOrInfrequentItemDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemTable" xlink:label="UnusualOrInfrequentItemTable" xlink:title="UnusualOrInfrequentItemTable" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UnusualOrInfrequentItemTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UnusualOrInfrequentItemTable_lbl" xml:lang="en-US" id="us-gaap_UnusualOrInfrequentItemTable_lbl">Unusual or Infrequent Item, or Both [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UnusualOrInfrequentItemTable" xlink:to="us-gaap_UnusualOrInfrequentItemTable_lbl" xlink:title="label: UnusualOrInfrequentItemTable to us-gaap_UnusualOrInfrequentItemTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UseOfEstimates" xlink:label="UseOfEstimates" xlink:title="UseOfEstimates" />
    <link:label xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_UseOfEstimates_lbl" xml:lang="en-US" id="us-gaap_UseOfEstimates_lbl">Use of estimates</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl" xlink:title="label: UseOfEstimates to us-gaap_UseOfEstimates_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember" xlink:label="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:title="ValuationAllowanceOperatingLossCarryforwardsMember" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember_lbl">Foreign Net Operating Loss Carryforwards [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:to="us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember_lbl" xlink:title="label: ValuationAllowanceOperatingLossCarryforwardsMember to us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesDomain_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesDomain_lbl">Valuation Allowances and Reserves [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain_lbl" xlink:title="label: ValuationAllowancesAndReservesDomain to us-gaap_ValuationAllowancesAndReservesDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance_lbl">Balance, beginning of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance_lbl" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance_lbl1" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance_lbl1" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance_lbl1">Balance, end of period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance_lbl1" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesBalance_lbl2">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance_lbl2" xlink:title="label: ValuationAllowancesAndReservesBalance to us-gaap_ValuationAllowancesAndReservesBalance_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl">Additions charged to income tax provision</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl" xlink:title="label: ValuationAllowancesAndReservesChargedToCostAndExpense to us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="ValuationAllowancesAndReservesDeductions" xlink:title="ValuationAllowancesAndReservesDeductions" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="us-gaap_ValuationAllowancesAndReservesDeductions_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesDeductions_lbl">Subtractions released to income tax provisions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesDeductions" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions_lbl" xlink:title="label: ValuationAllowancesAndReservesDeductions to us-gaap_ValuationAllowancesAndReservesDeductions_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesDeductions_lbl1" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesDeductions_lbl1">SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesDeductions" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions_lbl1" xlink:title="label: ValuationAllowancesAndReservesDeductions to us-gaap_ValuationAllowancesAndReservesDeductions_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_ValuationAllowancesAndReservesTypeAxis_lbl" xml:lang="en-US" id="us-gaap_ValuationAllowancesAndReservesTypeAxis_lbl">Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesTypeAxis_lbl" xlink:title="label: ValuationAllowancesAndReservesTypeAxis to us-gaap_ValuationAllowancesAndReservesTypeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:label xlink:type="resource" xlink:label="us-gaap_VariableRateDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_VariableRateDomain_lbl" xml:lang="en-US" id="us-gaap_VariableRateDomain_lbl">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="VariableRateDomain" xlink:to="us-gaap_VariableRateDomain_lbl" xlink:title="label: VariableRateDomain to us-gaap_VariableRateDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:label xlink:type="resource" xlink:label="us-gaap_VariableRateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_VariableRateAxis_lbl" xml:lang="en-US" id="us-gaap_VariableRateAxis_lbl">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="VariableRateAxis" xlink:to="us-gaap_VariableRateAxis_lbl" xlink:title="label: VariableRateAxis to us-gaap_VariableRateAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl">Diluted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl1" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl1">Diluted: Weighted average common and common equivalent shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl1" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2">Diluted (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" xlink:title="label: WeightedAverageNumberOfDilutedSharesOutstanding to us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl">Basic (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl1">Basic: Weighted average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl1" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2">Basic (in shares)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" xlink:title="label: WeightedAverageNumberOfSharesOutstandingBasic to us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl">Shares [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:title="label: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" />
    <link:label xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xml:lang="en-US" id="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1">Weighted Average Number of Shares Outstanding Reconciliation [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" xlink:title="label: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:label xlink:type="resource" xlink:label="srt_ConsolidationItemsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ConsolidationItemsAxis_lbl" xml:lang="en-US" id="srt_ConsolidationItemsAxis_lbl">Consolidation Items [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationItemsAxis" xlink:to="srt_ConsolidationItemsAxis_lbl" xlink:title="label: ConsolidationItemsAxis to srt_ConsolidationItemsAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:label xlink:type="resource" xlink:label="srt_ConsolidationItemsDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ConsolidationItemsDomain_lbl" xml:lang="en-US" id="srt_ConsolidationItemsDomain_lbl">Consolidation Items [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ConsolidationItemsDomain" xlink:to="srt_ConsolidationItemsDomain_lbl" xlink:title="label: ConsolidationItemsDomain to srt_ConsolidationItemsDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:label xlink:type="resource" xlink:label="srt_EuropeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_EuropeMember_lbl" xml:lang="en-US" id="srt_EuropeMember_lbl">Europe [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EuropeMember" xlink:to="srt_EuropeMember_lbl" xlink:title="label: EuropeMember to srt_EuropeMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:label xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MajorCustomersAxis_lbl" xml:lang="en-US" id="srt_MajorCustomersAxis_lbl">Customer [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl" xlink:title="label: MajorCustomersAxis to srt_MajorCustomersAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MaximumMember_lbl" xml:lang="en-US" id="srt_MaximumMember_lbl">Maximum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MaximumMember" xlink:to="srt_MaximumMember_lbl" xlink:title="label: MaximumMember to srt_MaximumMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:label xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_MinimumMember_lbl" xml:lang="en-US" id="srt_MinimumMember_lbl">Minimum [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="MinimumMember" xlink:to="srt_MinimumMember_lbl" xlink:title="label: MinimumMember to srt_MinimumMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:label xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_NameOfMajorCustomerDomain_lbl" xml:lang="en-US" id="srt_NameOfMajorCustomerDomain_lbl">Customer [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain_lbl" xlink:title="label: NameOfMajorCustomerDomain to srt_NameOfMajorCustomerDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:label xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ProductsAndServicesDomain_lbl" xml:lang="en-US" id="srt_ProductsAndServicesDomain_lbl">Product and Service [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl" xlink:title="label: ProductsAndServicesDomain to srt_ProductsAndServicesDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:label xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ProductOrServiceAxis_lbl" xml:lang="en-US" id="srt_ProductOrServiceAxis_lbl">Product and Service [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl" xlink:title="label: ProductOrServiceAxis to srt_ProductOrServiceAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:label xlink:type="resource" xlink:label="srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_lbl" xml:lang="en-US" id="srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_lbl">Effect of Change [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:to="srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_lbl" xlink:title="label: RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember to srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:label xlink:type="resource" xlink:label="srt_ReportableGeographicalComponentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ReportableGeographicalComponentsMember_lbl" xml:lang="en-US" id="srt_ReportableGeographicalComponentsMember_lbl">Reportable Geographical Components [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ReportableGeographicalComponentsMember" xlink:to="srt_ReportableGeographicalComponentsMember_lbl" xlink:title="label: ReportableGeographicalComponentsMember to srt_ReportableGeographicalComponentsMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:label xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeAxis_lbl" xml:lang="en-US" id="srt_RangeAxis_lbl">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeAxis" xlink:to="srt_RangeAxis_lbl" xlink:title="label: RangeAxis to srt_RangeAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:label xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RangeMember_lbl" xml:lang="en-US" id="srt_RangeMember_lbl">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RangeMember" xlink:to="srt_RangeMember_lbl" xlink:title="label: RangeMember to srt_RangeMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:label xlink:type="resource" xlink:label="srt_RestatementDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RestatementDomain_lbl" xml:lang="en-US" id="srt_RestatementDomain_lbl">Revision of Prior Period [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestatementDomain" xlink:to="srt_RestatementDomain_lbl" xlink:title="label: RestatementDomain to srt_RestatementDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:label xlink:type="resource" xlink:label="srt_RestatementAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_RestatementAxis_lbl" xml:lang="en-US" id="srt_RestatementAxis_lbl">Revision of Prior Period [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RestatementAxis" xlink:to="srt_RestatementAxis_lbl" xlink:title="label: RestatementAxis to srt_RestatementAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:label xlink:type="resource" xlink:label="srt_ScenarioPreviouslyReportedMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ScenarioPreviouslyReportedMember_lbl" xml:lang="en-US" id="srt_ScenarioPreviouslyReportedMember_lbl">Previously Reported [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScenarioPreviouslyReportedMember" xlink:to="srt_ScenarioPreviouslyReportedMember_lbl" xlink:title="label: ScenarioPreviouslyReportedMember to srt_ScenarioPreviouslyReportedMember_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:label xlink:type="resource" xlink:label="srt_SegmentGeographicalDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_SegmentGeographicalDomain_lbl" xml:lang="en-US" id="srt_SegmentGeographicalDomain_lbl">Geographical [Domain]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain_lbl" xlink:title="label: SegmentGeographicalDomain to srt_SegmentGeographicalDomain_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:label xlink:type="resource" xlink:label="srt_StatementGeographicalAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_StatementGeographicalAxis_lbl" xml:lang="en-US" id="srt_StatementGeographicalAxis_lbl">Geographical [Axis]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl" xlink:title="label: StatementGeographicalAxis to srt_StatementGeographicalAxis_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:label xlink:type="resource" xlink:label="srt_ValuationAndQualifyingAccountsDisclosureLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ValuationAndQualifyingAccountsDisclosureLineItems_lbl" xml:lang="en-US" id="srt_ValuationAndQualifyingAccountsDisclosureLineItems_lbl">Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="srt_ValuationAndQualifyingAccountsDisclosureLineItems_lbl" xlink:title="label: ValuationAndQualifyingAccountsDisclosureLineItems to srt_ValuationAndQualifyingAccountsDisclosureLineItems_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:label xlink:type="resource" xlink:label="srt_ValuationAndQualifyingAccountsDisclosureTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="srt_ValuationAndQualifyingAccountsDisclosureTable_lbl" xml:lang="en-US" id="srt_ValuationAndQualifyingAccountsDisclosureTable_lbl">Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="srt_ValuationAndQualifyingAccountsDisclosureTable_lbl" xlink:title="label: ValuationAndQualifyingAccountsDisclosureTable to srt_ValuationAndQualifyingAccountsDisclosureTable_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:label xlink:type="resource" xlink:label="country_CA_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="country_CA_lbl" xml:lang="en-US" id="country_CA_lbl">Canada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA_lbl" xlink:title="label: CA to country_CA_lbl" />
    <link:label xlink:type="resource" xlink:label="country_CA_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_CA_lbl1" xml:lang="en-US" id="country_CA_lbl1">CANADA</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CA" xlink:to="country_CA_lbl1" xlink:title="label: CA to country_CA_lbl1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:label xlink:type="resource" xlink:label="country_US_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="country_US_lbl" xml:lang="en-US" id="country_US_lbl">United States [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="US" xlink:to="country_US_lbl" xlink:title="label: US to country_US_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:label xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CoverAbstract_lbl" xml:lang="en-US" id="dei_CoverAbstract_lbl">Cover [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:title="label: CoverAbstract to dei_CoverAbstract_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentType_lbl" xml:lang="en-US" id="dei_DocumentType_lbl">Document Type</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentType" xlink:to="dei_DocumentType_lbl" xlink:title="label: DocumentType to dei_DocumentType_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="DocumentAnnualReport" xlink:title="DocumentAnnualReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentAnnualReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentAnnualReport_lbl" xml:lang="en-US" id="dei_DocumentAnnualReport_lbl">Document Annual Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport_lbl" xlink:title="label: DocumentAnnualReport to dei_DocumentAnnualReport_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentTransitionReport_lbl" xml:lang="en-US" id="dei_DocumentTransitionReport_lbl">Document Transition Report</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:title="label: DocumentTransitionReport to dei_DocumentTransitionReport_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:label xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US" id="dei_EntityInteractiveDataCurrent_lbl">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:title="label: EntityInteractiveDataCurrent to dei_EntityInteractiveDataCurrent_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:label xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AmendmentFlag_lbl" xml:lang="en-US" id="dei_AmendmentFlag_lbl">Amendment Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:title="label: AmendmentFlag to dei_AmendmentFlag_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="IcfrAuditorAttestationFlag" xlink:title="IcfrAuditorAttestationFlag" />
    <link:label xlink:type="resource" xlink:label="dei_IcfrAuditorAttestationFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_IcfrAuditorAttestationFlag_lbl" xml:lang="en-US" id="dei_IcfrAuditorAttestationFlag_lbl">ICFR Auditor Attestation Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IcfrAuditorAttestationFlag" xlink:to="dei_IcfrAuditorAttestationFlag_lbl" xlink:title="label: IcfrAuditorAttestationFlag to dei_IcfrAuditorAttestationFlag_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US" id="dei_DocumentFiscalYearFocus_lbl">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:title="label: DocumentFiscalYearFocus to dei_DocumentFiscalYearFocus_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US" id="dei_DocumentFiscalPeriodFocus_lbl">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:title="label: DocumentFiscalPeriodFocus to dei_DocumentFiscalPeriodFocus_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US" id="dei_DocumentPeriodEndDate_lbl">Document Period End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:title="label: DocumentPeriodEndDate to dei_DocumentPeriodEndDate_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:label xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityRegistrantName_lbl" xml:lang="en-US" id="dei_EntityRegistrantName_lbl">Entity Registrant Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:title="label: EntityRegistrantName to dei_EntityRegistrantName_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCentralIndexKey_lbl" xml:lang="en-US" id="dei_EntityCentralIndexKey_lbl">Entity Central Index Key</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:title="label: EntityCentralIndexKey to dei_EntityCentralIndexKey_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFileNumber_lbl" xml:lang="en-US" id="dei_EntityFileNumber_lbl">Entity File Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:title="label: EntityFileNumber to dei_EntityFileNumber_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:label xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US" id="dei_EntityTaxIdentificationNumber_lbl">Entity Tax Identification Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:title="label: EntityTaxIdentificationNumber to dei_EntityTaxIdentificationNumber_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US" id="dei_EntityIncorporationStateCountryCode_lbl">Entity Incorporation, State or Country Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:title="label: EntityIncorporationStateCountryCode to dei_EntityIncorporationStateCountryCode_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:label xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US" id="dei_CurrentFiscalYearEndDate_lbl">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:title="label: CurrentFiscalYearEndDate to dei_CurrentFiscalYearEndDate_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="EntityWellKnownSeasonedIssuer" xlink:title="EntityWellKnownSeasonedIssuer" />
    <link:label xlink:type="resource" xlink:label="dei_EntityWellKnownSeasonedIssuer_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityWellKnownSeasonedIssuer_lbl" xml:lang="en-US" id="dei_EntityWellKnownSeasonedIssuer_lbl">Entity Well-known Seasoned Issuer</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer_lbl" xlink:title="label: EntityWellKnownSeasonedIssuer to dei_EntityWellKnownSeasonedIssuer_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="EntityVoluntaryFilers" xlink:title="EntityVoluntaryFilers" />
    <link:label xlink:type="resource" xlink:label="dei_EntityVoluntaryFilers_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityVoluntaryFilers_lbl" xml:lang="en-US" id="dei_EntityVoluntaryFilers_lbl">Entity Voluntary Filers</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers_lbl" xlink:title="label: EntityVoluntaryFilers to dei_EntityVoluntaryFilers_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US" id="dei_EntityCurrentReportingStatus_lbl">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:title="label: EntityCurrentReportingStatus to dei_EntityCurrentReportingStatus_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityShellCompany_lbl" xml:lang="en-US" id="dei_EntityShellCompany_lbl">Entity Shell Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:title="label: EntityShellCompany to dei_EntityShellCompany_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:label xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityFilerCategory_lbl" xml:lang="en-US" id="dei_EntityFilerCategory_lbl">Entity Filer Category</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:title="label: EntityFilerCategory to dei_EntityFilerCategory_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:label xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntitySmallBusiness_lbl" xml:lang="en-US" id="dei_EntitySmallBusiness_lbl">Entity Small Business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:title="label: EntitySmallBusiness to dei_EntitySmallBusiness_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:label xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US" id="dei_EntityEmergingGrowthCompany_lbl">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:title="label: EntityEmergingGrowthCompany to dei_EntityEmergingGrowthCompany_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="EntityPublicFloat" xlink:title="EntityPublicFloat" />
    <link:label xlink:type="resource" xlink:label="dei_EntityPublicFloat_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityPublicFloat_lbl" xml:lang="en-US" id="dei_EntityPublicFloat_lbl">Entity Public Float</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityPublicFloat" xlink:to="dei_EntityPublicFloat_lbl" xlink:title="label: EntityPublicFloat to dei_EntityPublicFloat_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US" id="dei_EntityAddressAddressLine1_lbl">Entity Address, Address Line One</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:title="label: EntityAddressAddressLine1 to dei_EntityAddressAddressLine1_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine2" xlink:label="EntityAddressAddressLine2" xlink:title="EntityAddressAddressLine2" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine2_lbl" xml:lang="en-US" id="dei_EntityAddressAddressLine2_lbl">Entity Address, Address Line Two</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl" xlink:title="label: EntityAddressAddressLine2 to dei_EntityAddressAddressLine2_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine3" xlink:label="EntityAddressAddressLine3" xlink:title="EntityAddressAddressLine3" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressAddressLine3_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressAddressLine3_lbl" xml:lang="en-US" id="dei_EntityAddressAddressLine3_lbl">Entity Address, Address Line Three</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl" xlink:title="label: EntityAddressAddressLine3 to dei_EntityAddressAddressLine3_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US" id="dei_EntityAddressCityOrTown_lbl">Entity Address, City or Town</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:title="label: EntityAddressCityOrTown to dei_EntityAddressCityOrTown_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US" id="dei_EntityAddressStateOrProvince_lbl">Entity Address, State or Province</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:title="label: EntityAddressStateOrProvince to dei_EntityAddressStateOrProvince_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCountry" xlink:label="EntityAddressCountry" xlink:title="EntityAddressCountry" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressCountry_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressCountry_lbl" xml:lang="en-US" id="dei_EntityAddressCountry_lbl">Entity Address, Country</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressCountry" xlink:to="dei_EntityAddressCountry_lbl" xlink:title="label: EntityAddressCountry to dei_EntityAddressCountry_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:label xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US" id="dei_EntityAddressPostalZipCode_lbl">Entity Address, Postal Zip Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:title="label: EntityAddressPostalZipCode to dei_EntityAddressPostalZipCode_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:label xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_CityAreaCode_lbl" xml:lang="en-US" id="dei_CityAreaCode_lbl">City Area Code</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:title="label: CityAreaCode to dei_CityAreaCode_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:label xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_LocalPhoneNumber_lbl" xml:lang="en-US" id="dei_LocalPhoneNumber_lbl">Local Phone Number</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:title="label: LocalPhoneNumber to dei_LocalPhoneNumber_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:label xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_Security12bTitle_lbl" xml:lang="en-US" id="dei_Security12bTitle_lbl">Title of 12(b) Security</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:title="label: Security12bTitle to dei_Security12bTitle_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_NoTradingSymbolFlag" xlink:label="NoTradingSymbolFlag" xlink:title="NoTradingSymbolFlag" />
    <link:label xlink:type="resource" xlink:label="dei_NoTradingSymbolFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_NoTradingSymbolFlag_lbl" xml:lang="en-US" id="dei_NoTradingSymbolFlag_lbl">No Trading Symbol Flag</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NoTradingSymbolFlag" xlink:to="dei_NoTradingSymbolFlag_lbl" xlink:title="label: NoTradingSymbolFlag to dei_NoTradingSymbolFlag_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:label xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_TradingSymbol_lbl" xml:lang="en-US" id="dei_TradingSymbol_lbl">Trading Symbol</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:title="label: TradingSymbol to dei_TradingSymbol_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:label xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_SecurityExchangeName_lbl" xml:lang="en-US" id="dei_SecurityExchangeName_lbl">Security Exchange Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:title="label: SecurityExchangeName to dei_SecurityExchangeName_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:label xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US" id="dei_EntityCommonStockSharesOutstanding_lbl">Entity Common Stock, Shares Outstanding</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:title="label: EntityCommonStockSharesOutstanding to dei_EntityCommonStockSharesOutstanding_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorName" xlink:label="AuditorName" xlink:title="AuditorName" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorName_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorName_lbl" xml:lang="en-US" id="dei_AuditorName_lbl">Auditor Name</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorName" xlink:to="dei_AuditorName_lbl" xlink:title="label: AuditorName to dei_AuditorName_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorLocation" xlink:label="AuditorLocation" xlink:title="AuditorLocation" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorLocation_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorLocation_lbl" xml:lang="en-US" id="dei_AuditorLocation_lbl">Auditor Location</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorLocation" xlink:to="dei_AuditorLocation_lbl" xlink:title="label: AuditorLocation to dei_AuditorLocation_lbl" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorFirmId" xlink:label="AuditorFirmId" xlink:title="AuditorFirmId" />
    <link:label xlink:type="resource" xlink:label="dei_AuditorFirmId_lbl" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="dei_AuditorFirmId_lbl" xml:lang="en-US" id="dei_AuditorFirmId_lbl">Auditor Firm ID</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="AuditorFirmId" xlink:to="dei_AuditorFirmId_lbl" xlink:title="label: AuditorFirmId to dei_AuditorFirmId_lbl" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:label xlink:type="resource" xlink:label="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl" xml:lang="en-US" id="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl">Change in method of inventory valuation from "standard costing which approximates FIFO" to the average costing methodology.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:to="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl" xlink:title="label: ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember to tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl1" xml:lang="en-US" id="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl1">Change in Method of Inventory Valuation to Average Costing Methodology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:to="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl1" xlink:title="label: ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember to tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl2" xml:lang="en-US" id="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl2">Change in Method of Inventory Valuation to Average Costing [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:to="tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl2" xlink:title="label: ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember to tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl">Stock incentive plans which provide for awards to executives, key employees, directors and consultants.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1">Equity Incentive Plan 2005 and Equity Incentive Plan 2014 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl2" xml:lang="en-US" id="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl2">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl2" xlink:title="label: EquityIncentivePlan2005AndEquityIncentivePlan2014Member to tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xml:lang="en-US" id="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1">Equity Awards, Aggregate Intrinsic Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" xlink:title="label: EquityAwardsAggregateIntrinsicValueAbstract to tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl2" xml:lang="en-US" id="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl2">Aggregate Intrinsic Value [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl2" xlink:title="label: EquityAwardsAggregateIntrinsicValueAbstract to tact_EquityAwardsAggregateIntrinsicValueAbstract_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl">The weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the period.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Exercises in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl2" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl2">Exercised (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl">Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans for which the right to exercise has lapsed under the terms of the plan agreements.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Expirations, Weighted Average Grant Date Fair Value</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl2" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl2">Expired (in dollars per share)</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xml:lang="en-US" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1">Equity Awards, Weighted-Average Remaining Contractual Term [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" xlink:title="label: EquityAwardsWeightedAverageRemainingContractualTermAbstract to tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl2" xml:lang="en-US" id="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl2">Remaining Term [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl2" xlink:title="label: EquityAwardsWeightedAverageRemainingContractualTermAbstract to tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl">The number of stock incentive plans.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Number of stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl2" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl2">Number of stock incentive plans</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl">The exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1">Share-based Compensation Arrangement by Share-based Payment Award, Exercise Price as Percentage of Fair Market Value of Common Stock at Date of Grant</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl2" xml:lang="en-US" id="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl2">Exercise price as a percentage of fair market value of common stock at date of grant</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:to="tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl2" xlink:title="label: ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant to tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EquityIncentivePlan2014Member_lbl" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member_lbl">Stock incentive plan which provides for awards to executives, key employees, directors and consultants.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member_lbl" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EquityIncentivePlan2014Member_lbl1" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member_lbl1">Equity Incentive Plan 2014 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member_lbl1" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EquityIncentivePlan2014Member_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EquityIncentivePlan2014Member_lbl2" xml:lang="en-US" id="tact_EquityIncentivePlan2014Member_lbl2">2014 Equity Incentive Plan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EquityIncentivePlan2014Member" xlink:to="tact_EquityIncentivePlan2014Member_lbl2" xlink:title="label: EquityIncentivePlan2014Member to tact_EquityIncentivePlan2014Member_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl">The minimum principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid if the Company does not have the ability to direct the use of funds in the deposit account under the Amended Fee Letter.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl" xlink:title="label: DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl1" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl1">Debt Instrument, Minimum principal amount on which interest is paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl1" xlink:title="label: DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl2" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl2">Minimum principal amount on which interest is paid</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl2" xlink:title="label: DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid to tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl">The percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory, Raw Material, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl2" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl2">Percentage of eligible raw material</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl2" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl" xml:lang="en-US" id="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl">The minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash required under a new "springing" deposit account control agreement, permitting the Company to direct the use of funds in its deposit account.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl" xlink:title="label: DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl1" xml:lang="en-US" id="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl1">Debt Instrument, Minimum excess availability and unrestricted cash</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl1" xlink:title="label: DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl2" xml:lang="en-US" id="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl2">Minimum excess availability and unrestricted cash required</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl2" xlink:title="label: DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:label="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:title="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl">The minimum principal amount of outstanding borrowings that must be maintained in order to retain the ability to direct the use of funds in the deposit account under the Amended Fee Letter.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl" xlink:title="label: DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount to tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl1" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl1">Debt Instrument, Minimum principal amount to be maintained to direct use of funds in deposit account</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl1" xlink:title="label: DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount to tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl2" xml:lang="en-US" id="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl2">Minimum principal amount to be maintained to direct use of funds in deposit account</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:to="tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl2" xlink:title="label: DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount to tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl" xml:lang="en-US" id="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl">The period of time the minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash must be maintained, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl" xlink:title="label: DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl1" xml:lang="en-US" id="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl1">Debt Instrument, Period to maintain excess availability and unrestricted cash</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl1" xlink:title="label: DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl2" xml:lang="en-US" id="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl2">Number of days to maintain excess availability and unrestricted cash</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:to="tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl2" xlink:title="label: DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash to tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl">The percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1">Debt Instrument, Financial Covenant, Eligible Accounts Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl2" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl2">Percentage of eligible accounts receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl2" xlink:title="label: DebtInstrumentFinancialCovenantEligibleAccountsReceivable to tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl">Arrangement with Siena Lending Group LLC that provides a revolving credit line, subject to a borrowing base.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1">Revolving Credit Facility, Siena Lending Group Llc [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl2" xml:lang="en-US" id="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl2">Sienna Credit Facility [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:to="tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl2" xlink:title="label: RevolvingCreditFacilitySienaLendingGroupLlcMember to tact_RevolvingCreditFacilitySienaLendingGroupLlcMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl">The minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl2" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl2">Eligible inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventory" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl2" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventory to tact_DebtInstrumentFinancialCovenantEligibleInventory_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaycheckProtectionProgramLoanMember" xlink:label="PaycheckProtectionProgramLoanMember" xlink:title="PaycheckProtectionProgramLoanMember" />
    <link:label xlink:type="resource" xlink:label="tact_PaycheckProtectionProgramLoanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PaycheckProtectionProgramLoanMember_lbl" xml:lang="en-US" id="tact_PaycheckProtectionProgramLoanMember_lbl">Paycheck Protection Program loans are authorized by the Coronavirus Aid, Relief and Economic Security Act, Section 7(a)(36) of the Small Business Act (the "CARES Act") to provide forgivable loans to small businesses.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaycheckProtectionProgramLoanMember" xlink:to="tact_PaycheckProtectionProgramLoanMember_lbl" xlink:title="label: PaycheckProtectionProgramLoanMember to tact_PaycheckProtectionProgramLoanMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PaycheckProtectionProgramLoanMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PaycheckProtectionProgramLoanMember_lbl1" xml:lang="en-US" id="tact_PaycheckProtectionProgramLoanMember_lbl1">Paycheck Protection Program Loan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaycheckProtectionProgramLoanMember" xlink:to="tact_PaycheckProtectionProgramLoanMember_lbl1" xlink:title="label: PaycheckProtectionProgramLoanMember to tact_PaycheckProtectionProgramLoanMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PaycheckProtectionProgramLoanMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PaycheckProtectionProgramLoanMember_lbl2" xml:lang="en-US" id="tact_PaycheckProtectionProgramLoanMember_lbl2">PPP Loan [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaycheckProtectionProgramLoanMember" xlink:to="tact_PaycheckProtectionProgramLoanMember_lbl2" xlink:title="label: PaycheckProtectionProgramLoanMember to tact_PaycheckProtectionProgramLoanMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl">The percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1">Debt Instrument, Financial Covenant, Eligible Inventory, Finished Goods Inventory, Percentage</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl2" xml:lang="en-US" id="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl2">Percentage of eligible finished goods inventory</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:to="tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl2" xlink:title="label: DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage to tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_GainFromEmployeeRetentionCredit" xlink:label="GainFromEmployeeRetentionCredit" xlink:title="GainFromEmployeeRetentionCredit" />
    <link:label xlink:type="resource" xlink:label="tact_GainFromEmployeeRetentionCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_GainFromEmployeeRetentionCredit_lbl" xml:lang="en-US" id="tact_GainFromEmployeeRetentionCredit_lbl">The amount of gain from the Employee Retention Credit, a refundable tax credit against certain employment taxes equal to 50% of the qualified wages an eligible employer pays to employees after March 12, 2020, and before January 1, 2021.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainFromEmployeeRetentionCredit" xlink:to="tact_GainFromEmployeeRetentionCredit_lbl" xlink:title="label: GainFromEmployeeRetentionCredit to tact_GainFromEmployeeRetentionCredit_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_GainFromEmployeeRetentionCredit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_GainFromEmployeeRetentionCredit_lbl1" xml:lang="en-US" id="tact_GainFromEmployeeRetentionCredit_lbl1">Gain from Employee Retention Credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainFromEmployeeRetentionCredit" xlink:to="tact_GainFromEmployeeRetentionCredit_lbl1" xlink:title="label: GainFromEmployeeRetentionCredit to tact_GainFromEmployeeRetentionCredit_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_GainFromEmployeeRetentionCredit_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_GainFromEmployeeRetentionCredit_lbl2" xml:lang="en-US" id="tact_GainFromEmployeeRetentionCredit_lbl2">Gain from employee retention credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="GainFromEmployeeRetentionCredit" xlink:to="tact_GainFromEmployeeRetentionCredit_lbl2" xlink:title="label: GainFromEmployeeRetentionCredit to tact_GainFromEmployeeRetentionCredit_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:label="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:title="IncreaseDecreaseInEmployeeRetentionCreditReceivable" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl" xml:lang="en-US" id="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl">Amount of increase (decrease) in current assets classified as employee retention credit receivable.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:to="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl" xlink:title="label: IncreaseDecreaseInEmployeeRetentionCreditReceivable to tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl1" xml:lang="en-US" id="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl1">Increase (Decrease) in Employee Retention Credit Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:to="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl1" xlink:title="label: IncreaseDecreaseInEmployeeRetentionCreditReceivable to tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl2" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl2" xml:lang="en-US" id="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl2">Employee retention credit receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:to="tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl2" xlink:title="label: IncreaseDecreaseInEmployeeRetentionCreditReceivable to tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaymentsForProceedsFromNotesReceivable" xlink:label="PaymentsForProceedsFromNotesReceivable" xlink:title="PaymentsForProceedsFromNotesReceivable" />
    <link:label xlink:type="resource" xlink:label="tact_PaymentsForProceedsFromNotesReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PaymentsForProceedsFromNotesReceivable_lbl" xml:lang="en-US" id="tact_PaymentsForProceedsFromNotesReceivable_lbl">The net amount associated with payments for (receipts from) principal collections from a borrowing supported by a written promise to pay an obligation.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsForProceedsFromNotesReceivable" xlink:to="tact_PaymentsForProceedsFromNotesReceivable_lbl" xlink:title="label: PaymentsForProceedsFromNotesReceivable to tact_PaymentsForProceedsFromNotesReceivable_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PaymentsForProceedsFromNotesReceivable_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PaymentsForProceedsFromNotesReceivable_lbl1" xml:lang="en-US" id="tact_PaymentsForProceedsFromNotesReceivable_lbl1">Payments for (Proceeds from) Notes Receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsForProceedsFromNotesReceivable" xlink:to="tact_PaymentsForProceedsFromNotesReceivable_lbl1" xlink:title="label: PaymentsForProceedsFromNotesReceivable to tact_PaymentsForProceedsFromNotesReceivable_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PaymentsForProceedsFromNotesReceivable_lbl2" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="tact_PaymentsForProceedsFromNotesReceivable_lbl2" xml:lang="en-US" id="tact_PaymentsForProceedsFromNotesReceivable_lbl2">Collection of note receivable</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PaymentsForProceedsFromNotesReceivable" xlink:to="tact_PaymentsForProceedsFromNotesReceivable_lbl2" xlink:title="label: PaymentsForProceedsFromNotesReceivable to tact_PaymentsForProceedsFromNotesReceivable_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FurnitureAndOfficeEquipmentMember_lbl" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember_lbl">Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and tangible personal property used in an office setting. Examples include, but are not limited to, computers, copiers and fax machine.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember_lbl" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FurnitureAndOfficeEquipmentMember_lbl1" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember_lbl1">Furniture and Office Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember_lbl1" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FurnitureAndOfficeEquipmentMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FurnitureAndOfficeEquipmentMember_lbl2" xml:lang="en-US" id="tact_FurnitureAndOfficeEquipmentMember_lbl2">Furniture and Office Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FurnitureAndOfficeEquipmentMember" xlink:to="tact_FurnitureAndOfficeEquipmentMember_lbl2" xlink:title="label: FurnitureAndOfficeEquipmentMember to tact_FurnitureAndOfficeEquipmentMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ComputerSoftwareAndEquipmentMember_lbl" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember_lbl">Computer software, including but not limited to, acquired and internally developed computer software, and long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember_lbl" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ComputerSoftwareAndEquipmentMember_lbl1" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember_lbl1">Computer Software and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember_lbl1" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ComputerSoftwareAndEquipmentMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ComputerSoftwareAndEquipmentMember_lbl2" xml:lang="en-US" id="tact_ComputerSoftwareAndEquipmentMember_lbl2">Computer Software and Equipment [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ComputerSoftwareAndEquipmentMember" xlink:to="tact_ComputerSoftwareAndEquipmentMember_lbl2" xlink:title="label: ComputerSoftwareAndEquipmentMember to tact_ComputerSoftwareAndEquipmentMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember_lbl">Fixed assets excluding construction in-process. Includes tooling, machinery and equipment, furniture and office equipment, computer software and equipment, and leasehold improvements.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember_lbl" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1">Fixed Assets, Excluding Construction in-Process [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FixedAssetsExcludingConstructionInProcessMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FixedAssetsExcludingConstructionInProcessMember_lbl2" xml:lang="en-US" id="tact_FixedAssetsExcludingConstructionInProcessMember_lbl2">Fixed Assets, Excluding Construction in-Process [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FixedAssetsExcludingConstructionInProcessMember" xlink:to="tact_FixedAssetsExcludingConstructionInProcessMember_lbl2" xlink:title="label: FixedAssetsExcludingConstructionInProcessMember to tact_FixedAssetsExcludingConstructionInProcessMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EmployeeRetentionCreditReceivableAbstract" xlink:label="EmployeeRetentionCreditReceivableAbstract" xlink:title="EmployeeRetentionCreditReceivableAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_EmployeeRetentionCreditReceivableAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EmployeeRetentionCreditReceivableAbstract_lbl1" xml:lang="en-US" id="tact_EmployeeRetentionCreditReceivableAbstract_lbl1">Employee Retention Credit Receivable [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeRetentionCreditReceivableAbstract" xlink:to="tact_EmployeeRetentionCreditReceivableAbstract_lbl1" xlink:title="label: EmployeeRetentionCreditReceivableAbstract to tact_EmployeeRetentionCreditReceivableAbstract_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EmployeeRetentionCreditReceivableAbstract_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EmployeeRetentionCreditReceivableAbstract_lbl2" xml:lang="en-US" id="tact_EmployeeRetentionCreditReceivableAbstract_lbl2">Subsequent events [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EmployeeRetentionCreditReceivableAbstract" xlink:to="tact_EmployeeRetentionCreditReceivableAbstract_lbl2" xlink:title="label: EmployeeRetentionCreditReceivableAbstract to tact_EmployeeRetentionCreditReceivableAbstract_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ProceedsFromEmployeeRetentionCredit" xlink:label="ProceedsFromEmployeeRetentionCredit" xlink:title="ProceedsFromEmployeeRetentionCredit" />
    <link:label xlink:type="resource" xlink:label="tact_ProceedsFromEmployeeRetentionCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ProceedsFromEmployeeRetentionCredit_lbl" xml:lang="en-US" id="tact_ProceedsFromEmployeeRetentionCredit_lbl">The cash inflow associated with employee retention credit receivable from the U.S. Government.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromEmployeeRetentionCredit" xlink:to="tact_ProceedsFromEmployeeRetentionCredit_lbl" xlink:title="label: ProceedsFromEmployeeRetentionCredit to tact_ProceedsFromEmployeeRetentionCredit_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ProceedsFromEmployeeRetentionCredit_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ProceedsFromEmployeeRetentionCredit_lbl1" xml:lang="en-US" id="tact_ProceedsFromEmployeeRetentionCredit_lbl1">Proceeds from Employee retention credit</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromEmployeeRetentionCredit" xlink:to="tact_ProceedsFromEmployeeRetentionCredit_lbl1" xlink:title="label: ProceedsFromEmployeeRetentionCredit to tact_ProceedsFromEmployeeRetentionCredit_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ProceedsFromEmployeeRetentionCredit_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ProceedsFromEmployeeRetentionCredit_lbl2" xml:lang="en-US" id="tact_ProceedsFromEmployeeRetentionCredit_lbl2">Employee retention credit receivable collected</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ProceedsFromEmployeeRetentionCredit" xlink:to="tact_ProceedsFromEmployeeRetentionCredit_lbl2" xlink:title="label: ProceedsFromEmployeeRetentionCredit to tact_ProceedsFromEmployeeRetentionCredit_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:label xlink:type="resource" xlink:label="tact_DescriptionOfBusinessAbstract_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_DescriptionOfBusinessAbstract_lbl1" xml:lang="en-US" id="tact_DescriptionOfBusinessAbstract_lbl1">Description of business [Abstract]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="DescriptionOfBusinessAbstract" xlink:to="tact_DescriptionOfBusinessAbstract_lbl1" xlink:title="label: DescriptionOfBusinessAbstract to tact_DescriptionOfBusinessAbstract_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NumberOfSoftwareSolutions" xlink:label="NumberOfSoftwareSolutions" xlink:title="NumberOfSoftwareSolutions" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_NumberOfSoftwareSolutions_lbl" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions_lbl">Number of software solutions from the after-market side of the business.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions_lbl" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_NumberOfSoftwareSolutions_lbl1" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions_lbl1">Number of software solutions</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions_lbl1" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfSoftwareSolutions_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_NumberOfSoftwareSolutions_lbl2" xml:lang="en-US" id="tact_NumberOfSoftwareSolutions_lbl2">Number of software solutions from the after-market side of the business</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfSoftwareSolutions" xlink:to="tact_NumberOfSoftwareSolutions_lbl2" xlink:title="label: NumberOfSoftwareSolutions to tact_NumberOfSoftwareSolutions_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_Covid19Member" xlink:label="Covid19Member" xlink:title="Covid19Member" />
    <link:label xlink:type="resource" xlink:label="tact_Covid19Member_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_Covid19Member_lbl" xml:lang="en-US" id="tact_Covid19Member_lbl">The novel coronavirus (COVID-19) categorized as a pandemic by the World Health Organization.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Covid19Member" xlink:to="tact_Covid19Member_lbl" xlink:title="label: Covid19Member to tact_Covid19Member_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_Covid19Member_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_Covid19Member_lbl1" xml:lang="en-US" id="tact_Covid19Member_lbl1">Covid-19 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Covid19Member" xlink:to="tact_Covid19Member_lbl1" xlink:title="label: Covid19Member to tact_Covid19Member_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_Covid19Member_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_Covid19Member_lbl2" xml:lang="en-US" id="tact_Covid19Member_lbl2">COVID-19 [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="Covid19Member" xlink:to="tact_Covid19Member_lbl2" xlink:title="label: Covid19Member to tact_Covid19Member_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInWorkforce" xlink:label="PercentageReductionInWorkforce" xlink:title="PercentageReductionInWorkforce" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInWorkforce_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PercentageReductionInWorkforce_lbl" xml:lang="en-US" id="tact_PercentageReductionInWorkforce_lbl">The percentage reduction in the Company's workforce due to employee terminations and temporary furloughs.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInWorkforce" xlink:to="tact_PercentageReductionInWorkforce_lbl" xlink:title="label: PercentageReductionInWorkforce to tact_PercentageReductionInWorkforce_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInWorkforce_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PercentageReductionInWorkforce_lbl1" xml:lang="en-US" id="tact_PercentageReductionInWorkforce_lbl1">Percentage reduction in workforce</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInWorkforce" xlink:to="tact_PercentageReductionInWorkforce_lbl1" xlink:title="label: PercentageReductionInWorkforce to tact_PercentageReductionInWorkforce_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInWorkforce_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PercentageReductionInWorkforce_lbl2" xml:lang="en-US" id="tact_PercentageReductionInWorkforce_lbl2">Percentage reduction in workforce</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInWorkforce" xlink:to="tact_PercentageReductionInWorkforce_lbl2" xlink:title="label: PercentageReductionInWorkforce to tact_PercentageReductionInWorkforce_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInSalaries" xlink:label="PercentageReductionInSalaries" xlink:title="PercentageReductionInSalaries" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInSalaries_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PercentageReductionInSalaries_lbl" xml:lang="en-US" id="tact_PercentageReductionInSalaries_lbl">The percentage reduction in salaries of all salaried, non-commissioned employees, including executive officers.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInSalaries" xlink:to="tact_PercentageReductionInSalaries_lbl" xlink:title="label: PercentageReductionInSalaries to tact_PercentageReductionInSalaries_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInSalaries_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PercentageReductionInSalaries_lbl1" xml:lang="en-US" id="tact_PercentageReductionInSalaries_lbl1">Percentage reduction in salaries</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInSalaries" xlink:to="tact_PercentageReductionInSalaries_lbl1" xlink:title="label: PercentageReductionInSalaries to tact_PercentageReductionInSalaries_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInSalaries_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PercentageReductionInSalaries_lbl2" xml:lang="en-US" id="tact_PercentageReductionInSalaries_lbl2">Percentage reduction in salaries of all salaried, non-commissioned employees, including executive officers</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInSalaries" xlink:to="tact_PercentageReductionInSalaries_lbl2" xlink:title="label: PercentageReductionInSalaries to tact_PercentageReductionInSalaries_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInCashRetainerFees" xlink:label="PercentageReductionInCashRetainerFees" xlink:title="PercentageReductionInCashRetainerFees" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInCashRetainerFees_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PercentageReductionInCashRetainerFees_lbl" xml:lang="en-US" id="tact_PercentageReductionInCashRetainerFees_lbl">The percentage reduction in cash retainer fees for all non-employee directors.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInCashRetainerFees" xlink:to="tact_PercentageReductionInCashRetainerFees_lbl" xlink:title="label: PercentageReductionInCashRetainerFees to tact_PercentageReductionInCashRetainerFees_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInCashRetainerFees_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PercentageReductionInCashRetainerFees_lbl1" xml:lang="en-US" id="tact_PercentageReductionInCashRetainerFees_lbl1">Percentage reduction in cash retainer fees</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInCashRetainerFees" xlink:to="tact_PercentageReductionInCashRetainerFees_lbl1" xlink:title="label: PercentageReductionInCashRetainerFees to tact_PercentageReductionInCashRetainerFees_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PercentageReductionInCashRetainerFees_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PercentageReductionInCashRetainerFees_lbl2" xml:lang="en-US" id="tact_PercentageReductionInCashRetainerFees_lbl2">Percentage reduction in cash retainer fees for all non-employee directors</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PercentageReductionInCashRetainerFees" xlink:to="tact_PercentageReductionInCashRetainerFees_lbl2" xlink:title="label: PercentageReductionInCashRetainerFees to tact_PercentageReductionInCashRetainerFees_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NumberOfManufacturers" xlink:label="NumberOfManufacturers" xlink:title="NumberOfManufacturers" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfManufacturers_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_NumberOfManufacturers_lbl" xml:lang="en-US" id="tact_NumberOfManufacturers_lbl">The number of manufacturers located in China and Thailand.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfManufacturers" xlink:to="tact_NumberOfManufacturers_lbl" xlink:title="label: NumberOfManufacturers to tact_NumberOfManufacturers_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfManufacturers_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_NumberOfManufacturers_lbl1" xml:lang="en-US" id="tact_NumberOfManufacturers_lbl1">Number of manufacturers</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfManufacturers" xlink:to="tact_NumberOfManufacturers_lbl1" xlink:title="label: NumberOfManufacturers to tact_NumberOfManufacturers_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_NumberOfManufacturers_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_NumberOfManufacturers_lbl2" xml:lang="en-US" id="tact_NumberOfManufacturers_lbl2">Number of manufacturers in China and Thailand</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NumberOfManufacturers" xlink:to="tact_NumberOfManufacturers_lbl2" xlink:title="label: NumberOfManufacturers to tact_NumberOfManufacturers_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:label="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:title="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl">Percentage 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 miscellaneous permanent items.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent to tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl1" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl1">Effective Income Tax Rate Reconciliation, Miscellaneous Permanent Items, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent to tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl2" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl2">Miscellaneous permanent items</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl2" xlink:title="label: EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent to tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:label="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:title="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl">Percentage of the difference between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to forgiveness of a long under the Paycheck Protection Program (PPP) administered by the Small Business Administration established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security ("CARES") Act.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl" xlink:title="label: EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent to tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl1" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl1">Effective Income Tax Rate Reconciliation, Loan Forgiveness, Percent</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl1" xlink:title="label: EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent to tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl2" xml:lang="en-US" id="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl2">PPP loan forgiveness</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:to="tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl2" xlink:title="label: EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent to tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PacificRimMember_lbl" xml:lang="en-US" id="tact_PacificRimMember_lbl">Geographic area surrounding the edges of the Pacific Ocean. The Pacific Rim covers the western shores of North America and South America, in addition to Australia, eastern Asia and the islands of the Pacific.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember_lbl" xlink:title="label: PacificRimMember to tact_PacificRimMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PacificRimMember_lbl1" xml:lang="en-US" id="tact_PacificRimMember_lbl1">Pacific Rim [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember_lbl1" xlink:title="label: PacificRimMember to tact_PacificRimMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PacificRimMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PacificRimMember_lbl2" xml:lang="en-US" id="tact_PacificRimMember_lbl2">Pacific Rim [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PacificRimMember" xlink:to="tact_PacificRimMember_lbl2" xlink:title="label: PacificRimMember to tact_PacificRimMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_InternationalMember_lbl" xml:lang="en-US" id="tact_InternationalMember_lbl">Other countries outside of the United States.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalMember" xlink:to="tact_InternationalMember_lbl" xlink:title="label: InternationalMember to tact_InternationalMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_InternationalMember_lbl1" xml:lang="en-US" id="tact_InternationalMember_lbl1">International [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalMember" xlink:to="tact_InternationalMember_lbl1" xlink:title="label: InternationalMember to tact_InternationalMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:label="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:title="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" />
    <link:label xlink:type="resource" xlink:label="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl" xml:lang="en-US" id="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl">Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after 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).</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:to="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl" xlink:title="label: FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree to tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl1" xml:lang="en-US" id="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl1">Finite-Lived Intangible Asset, Expected Amortization, After Year Three</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:to="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl1" xlink:title="label: FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree to tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl2" xml:lang="en-US" id="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl2">Thereafter</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:to="tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl2" xlink:title="label: FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree to tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod_lbl">Period remaining before the tax credit carryforward expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod_lbl" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod_lbl1">Tax Credit Carryforward, Expiration Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod_lbl1" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardExpirationPeriod_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TaxCreditCarryforwardExpirationPeriod_lbl2" xml:lang="en-US" id="tact_TaxCreditCarryforwardExpirationPeriod_lbl2">Life of tax credit carry forward</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardExpirationPeriod" xlink:to="tact_TaxCreditCarryforwardExpirationPeriod_lbl2" xlink:title="label: TaxCreditCarryforwardExpirationPeriod to tact_TaxCreditCarryforwardExpirationPeriod_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl">Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are not subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1">Operating Loss Carryforwards, Not Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl2" xml:lang="en-US" id="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl2">Net operating loss carryforwards not subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl2" xlink:title="label: OperatingLossCarryforwardsNotSubjectToExpiration to tact_OperatingLossCarryforwardsNotSubjectToExpiration_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl">Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1">Operating Loss Carryforwards, Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl2" xml:lang="en-US" id="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl2">Net operating loss carryforwards subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="OperatingLossCarryforwardsSubjectToExpiration" xlink:to="tact_OperatingLossCarryforwardsSubjectToExpiration_lbl2" xlink:title="label: OperatingLossCarryforwardsSubjectToExpiration to tact_OperatingLossCarryforwardsSubjectToExpiration_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl">The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1">Tax Credit Carryforward, Amount, Subject to Expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl2" xml:lang="en-US" id="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl2">Tax credit carryforwards subject to expiration</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:to="tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl2" xlink:title="label: TaxCreditCarryforwardAmountSubjectToExpiration to tact_TaxCreditCarryforwardAmountSubjectToExpiration_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ExtendedProductWarrantyPeriod" xlink:label="ExtendedProductWarrantyPeriod" xlink:title="ExtendedProductWarrantyPeriod" />
    <link:label xlink:type="resource" xlink:label="tact_ExtendedProductWarrantyPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ExtendedProductWarrantyPeriod_lbl" xml:lang="en-US" id="tact_ExtendedProductWarrantyPeriod_lbl">The extended warranty period on company products, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyPeriod" xlink:to="tact_ExtendedProductWarrantyPeriod_lbl" xlink:title="label: ExtendedProductWarrantyPeriod to tact_ExtendedProductWarrantyPeriod_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ExtendedProductWarrantyPeriod_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ExtendedProductWarrantyPeriod_lbl1" xml:lang="en-US" id="tact_ExtendedProductWarrantyPeriod_lbl1">Extended Product Warranty Period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyPeriod" xlink:to="tact_ExtendedProductWarrantyPeriod_lbl1" xlink:title="label: ExtendedProductWarrantyPeriod to tact_ExtendedProductWarrantyPeriod_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ExtendedProductWarrantyPeriod_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ExtendedProductWarrantyPeriod_lbl2" xml:lang="en-US" id="tact_ExtendedProductWarrantyPeriod_lbl2">Product warranty period</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ExtendedProductWarrantyPeriod" xlink:to="tact_ExtendedProductWarrantyPeriod_lbl2" xlink:title="label: ExtendedProductWarrantyPeriod to tact_ExtendedProductWarrantyPeriod_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_InternationalGameTechnologyPlcMember_lbl" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember_lbl">International Game Technology PLC, formerly Gtech S.p.A. and Lottomatica S.p.A., is a multinational gaming company that produces slot machines and other gaming technology.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember_lbl" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_InternationalGameTechnologyPlcMember_lbl1" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember_lbl1">International Game Technology PLC [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember_lbl1" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_InternationalGameTechnologyPlcMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_InternationalGameTechnologyPlcMember_lbl2" xml:lang="en-US" id="tact_InternationalGameTechnologyPlcMember_lbl2">IGT [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="InternationalGameTechnologyPlcMember" xlink:to="tact_InternationalGameTechnologyPlcMember_lbl2" xlink:title="label: InternationalGameTechnologyPlcMember to tact_InternationalGameTechnologyPlcMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NcrCorporationMember" xlink:label="NcrCorporationMember" xlink:title="NcrCorporationMember" />
    <link:label xlink:type="resource" xlink:label="tact_NcrCorporationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_NcrCorporationMember_lbl" xml:lang="en-US" id="tact_NcrCorporationMember_lbl">NCR Corporation, previously known as National Cash Register, is an American software, consulting and technology company providing several professional services and electronic products.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NcrCorporationMember" xlink:to="tact_NcrCorporationMember_lbl" xlink:title="label: NcrCorporationMember to tact_NcrCorporationMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_NcrCorporationMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_NcrCorporationMember_lbl1" xml:lang="en-US" id="tact_NcrCorporationMember_lbl1">NCR Corporation [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NcrCorporationMember" xlink:to="tact_NcrCorporationMember_lbl1" xlink:title="label: NcrCorporationMember to tact_NcrCorporationMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_NcrCorporationMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_NcrCorporationMember_lbl2" xml:lang="en-US" id="tact_NcrCorporationMember_lbl2">NCR Corporation [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="NcrCorporationMember" xlink:to="tact_NcrCorporationMember_lbl2" xlink:title="label: NcrCorporationMember to tact_NcrCorporationMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TheBrightGroupMember" xlink:label="TheBrightGroupMember" xlink:title="TheBrightGroupMember" />
    <link:label xlink:type="resource" xlink:label="tact_TheBrightGroupMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TheBrightGroupMember_lbl" xml:lang="en-US" id="tact_TheBrightGroupMember_lbl">The Bright Groups a dynamic Australian-based manufacturing services group.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TheBrightGroupMember" xlink:to="tact_TheBrightGroupMember_lbl" xlink:title="label: TheBrightGroupMember to tact_TheBrightGroupMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TheBrightGroupMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TheBrightGroupMember_lbl1" xml:lang="en-US" id="tact_TheBrightGroupMember_lbl1">The Bright Group [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TheBrightGroupMember" xlink:to="tact_TheBrightGroupMember_lbl1" xlink:title="label: TheBrightGroupMember to tact_TheBrightGroupMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ScientificGamesMember" xlink:label="ScientificGamesMember" xlink:title="ScientificGamesMember" />
    <link:label xlink:type="resource" xlink:label="tact_ScientificGamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ScientificGamesMember_lbl" xml:lang="en-US" id="tact_ScientificGamesMember_lbl">Scientific Games is a world leader in entertainment offering dynamic games, systems and services for casino, lottery, social gaming, online gaming and sports betting.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScientificGamesMember" xlink:to="tact_ScientificGamesMember_lbl" xlink:title="label: ScientificGamesMember to tact_ScientificGamesMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ScientificGamesMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ScientificGamesMember_lbl1" xml:lang="en-US" id="tact_ScientificGamesMember_lbl1">Scientific Games [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScientificGamesMember" xlink:to="tact_ScientificGamesMember_lbl1" xlink:title="label: ScientificGamesMember to tact_ScientificGamesMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ScientificGamesMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ScientificGamesMember_lbl2" xml:lang="en-US" id="tact_ScientificGamesMember_lbl2">Chain Link Services [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ScientificGamesMember" xlink:to="tact_ScientificGamesMember_lbl2" xlink:title="label: ScientificGamesMember to tact_ScientificGamesMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LotteryMember" xlink:label="LotteryMember" xlink:title="LotteryMember" />
    <link:label xlink:type="resource" xlink:label="tact_LotteryMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LotteryMember_lbl" xml:lang="en-US" id="tact_LotteryMember_lbl">Revenue from sales of thermal on-line and other lottery printers primarily to International Game Technology and its subsidiaries ("IGT") and, to a lesser extent, other lottery system companies for various lottery applications.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LotteryMember" xlink:to="tact_LotteryMember_lbl" xlink:title="label: LotteryMember to tact_LotteryMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LotteryMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LotteryMember_lbl1" xml:lang="en-US" id="tact_LotteryMember_lbl1">Lottery [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LotteryMember" xlink:to="tact_LotteryMember_lbl1" xlink:title="label: LotteryMember to tact_LotteryMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LotteryMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LotteryMember_lbl2" xml:lang="en-US" id="tact_LotteryMember_lbl2">Lottery [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LotteryMember" xlink:to="tact_LotteryMember_lbl2" xlink:title="label: LotteryMember to tact_LotteryMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FoodServiceTechnologyMember_lbl" xml:lang="en-US" id="tact_FoodServiceTechnologyMember_lbl">Revenue from sales of the BOHA! ecosystem, which combines the latest generation terminal, cloud-based software applications and related hardware into a unique solution to automate operations with food production in the back-of-house operations in restaurants and food service operations.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember_lbl" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FoodServiceTechnologyMember_lbl1" xml:lang="en-US" id="tact_FoodServiceTechnologyMember_lbl1">Food Service Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember_lbl1" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FoodServiceTechnologyMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FoodServiceTechnologyMember_lbl2" xml:lang="en-US" id="tact_FoodServiceTechnologyMember_lbl2">Food Service Technology [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FoodServiceTechnologyMember" xlink:to="tact_FoodServiceTechnologyMember_lbl2" xlink:title="label: FoodServiceTechnologyMember to tact_FoodServiceTechnologyMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TransactServicesGroupMember_lbl" xml:lang="en-US" id="tact_TransactServicesGroupMember_lbl">Revenue from range of supplies and consumables used in the printing and scanning activities of customers in the restaurant and hospitality, banking, retail, casino and gaming, government and oil and gas exploration markets.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember_lbl" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TransactServicesGroupMember_lbl1" xml:lang="en-US" id="tact_TransactServicesGroupMember_lbl1">TransAct Services Group [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember_lbl1" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TransactServicesGroupMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TransactServicesGroupMember_lbl2" xml:lang="en-US" id="tact_TransactServicesGroupMember_lbl2">TransAct Services Group [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TransactServicesGroupMember" xlink:to="tact_TransactServicesGroupMember_lbl2" xlink:title="label: TransactServicesGroupMember to tact_TransactServicesGroupMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PrintrexMember" xlink:label="PrintrexMember" xlink:title="PrintrexMember" />
    <link:label xlink:type="resource" xlink:label="tact_PrintrexMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PrintrexMember_lbl" xml:lang="en-US" id="tact_PrintrexMember_lbl">Revenue from sales of branded printers wide format, desktop and rack mounted and vehicle mounted black/white thermal printers used by customers to log and plot oil field, seismic and down hole well drilling data in the oil and gas exploration industry.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrintrexMember" xlink:to="tact_PrintrexMember_lbl" xlink:title="label: PrintrexMember to tact_PrintrexMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PrintrexMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PrintrexMember_lbl1" xml:lang="en-US" id="tact_PrintrexMember_lbl1">Printrex [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrintrexMember" xlink:to="tact_PrintrexMember_lbl1" xlink:title="label: PrintrexMember to tact_PrintrexMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PrintrexMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PrintrexMember_lbl2" xml:lang="en-US" id="tact_PrintrexMember_lbl2">Printrex [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PrintrexMember" xlink:to="tact_PrintrexMember_lbl2" xlink:title="label: PrintrexMember to tact_PrintrexMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_CasinoAndGamingMember_lbl" xml:lang="en-US" id="tact_CasinoAndGamingMember_lbl">Revenue from sales of thermal ticket printers used in slot machines, video lottery terminals, and other gaming machines that print tickets or receipts instead of issuing coins at casinos and racetracks and other gaming venues worldwide.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember_lbl" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_CasinoAndGamingMember_lbl1" xml:lang="en-US" id="tact_CasinoAndGamingMember_lbl1">Casino and Gaming [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember_lbl1" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_CasinoAndGamingMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_CasinoAndGamingMember_lbl2" xml:lang="en-US" id="tact_CasinoAndGamingMember_lbl2">Casino and Gaming [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="CasinoAndGamingMember" xlink:to="tact_CasinoAndGamingMember_lbl2" xlink:title="label: CasinoAndGamingMember to tact_CasinoAndGamingMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_PosAutomationAndBankingMember_lbl" xml:lang="en-US" id="tact_PosAutomationAndBankingMember_lbl">Revenue from sales of thermal printers used primarily by restaurants (including fine dining, casual dining, quick serve and hospitality establishments) located either at the checkout counter or within self-service kiosks to print receipts for consumers or print on linerless labels.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember_lbl" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_PosAutomationAndBankingMember_lbl1" xml:lang="en-US" id="tact_PosAutomationAndBankingMember_lbl1">POS Automation and Banking [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember_lbl1" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_PosAutomationAndBankingMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_PosAutomationAndBankingMember_lbl2" xml:lang="en-US" id="tact_PosAutomationAndBankingMember_lbl2">POS Automation [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="PosAutomationAndBankingMember" xlink:to="tact_PosAutomationAndBankingMember_lbl2" xlink:title="label: PosAutomationAndBankingMember to tact_PosAutomationAndBankingMember_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:label="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl">Period the customer receives free maintenance upon completion of EPICENTRAL installation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1">Term of free maintenance upon completion of software installation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl2" xml:lang="en-US" id="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl2">Term of free maintenance upon completion of software installation</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:to="tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl2" xlink:title="label: TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation to tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerRevenueRecognized" xlink:label="ContractWithCustomerRevenueRecognized" xlink:title="ContractWithCustomerRevenueRecognized" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerRevenueRecognized_lbl" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized_lbl">Amount of revenue recognized related to obligation to transfer good or service to customer for which consideration from customer has been received or is due.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized_lbl" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerRevenueRecognized_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized_lbl1">Contract with Customer, Revenue Recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized_lbl1" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerRevenueRecognized_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_ContractWithCustomerRevenueRecognized_lbl2" xml:lang="en-US" id="tact_ContractWithCustomerRevenueRecognized_lbl2">Revenue recognized</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerRevenueRecognized" xlink:to="tact_ContractWithCustomerRevenueRecognized_lbl2" xlink:title="label: ContractWithCustomerRevenueRecognized to tact_ContractWithCustomerRevenueRecognized_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl">Amount of obligation to transfer good or service to customer related to customer prepayments for which consideration has been received or is receivable, classified as current.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1">Contract with Customer, Liability for Customer Prepayments, Current</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl2" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:title="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl2" xml:lang="en-US" id="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl2">Customer pre-payments</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:to="tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl2" xlink:title="label: ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent to tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_ContractWithCustomerAssetLiabilityNet_lbl" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet_lbl">Amount, after allowance for credit loss, of right (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet_lbl" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet_lbl1">Contract with Customer, Asset (Liability), net</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet_lbl1" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_ContractWithCustomerAssetLiabilityNet_lbl2" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:title="tact_ContractWithCustomerAssetLiabilityNet_lbl2" xml:lang="en-US" id="tact_ContractWithCustomerAssetLiabilityNet_lbl2">Net contract (liabilities) assets</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ContractWithCustomerAssetLiabilityNet" xlink:to="tact_ContractWithCustomerAssetLiabilityNet_lbl2" xlink:title="label: ContractWithCustomerAssetLiabilityNet to tact_ContractWithCustomerAssetLiabilityNet_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:label="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl">Tabular disclosure of supplemental information for the statement of cash flows related to operating leases.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1">Lessee, Operating Lease, Supplemental Disclosure for Cash Flows [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl2" xml:lang="en-US" id="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl2">Cash Flows for Operating Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:to="tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl2" xlink:title="label: LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock to tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:label="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl">Tabular disclosure of information related to lessee's operating leases, including weighted average lease term and discount rate.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1">Lessee, Operating Lease, Lease Term and Discount Rate [Table Text Block]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl2" xml:lang="en-US" id="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl2">Additional Information Related to Leases</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:to="tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl2" xlink:title="label: LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock to tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInHamdenConnecticutMember" xlink:label="FacilityInHamdenConnecticutMember" xlink:title="FacilityInHamdenConnecticutMember" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInHamdenConnecticutMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FacilityInHamdenConnecticutMember_lbl" xml:lang="en-US" id="tact_FacilityInHamdenConnecticutMember_lbl">The company's executive offices and sales office located in Hamden, Connecticut.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInHamdenConnecticutMember" xlink:to="tact_FacilityInHamdenConnecticutMember_lbl" xlink:title="label: FacilityInHamdenConnecticutMember to tact_FacilityInHamdenConnecticutMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInHamdenConnecticutMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FacilityInHamdenConnecticutMember_lbl1" xml:lang="en-US" id="tact_FacilityInHamdenConnecticutMember_lbl1">Facility in Hamden, Connecticut [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInHamdenConnecticutMember" xlink:to="tact_FacilityInHamdenConnecticutMember_lbl1" xlink:title="label: FacilityInHamdenConnecticutMember to tact_FacilityInHamdenConnecticutMember_lbl1" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl">Amount of increase (decrease) in operating lease right-of-use asset.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1">Increase (Decrease) in Operating Lease Right-of-use Asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl2" xml:lang="en-US" id="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl2">Increase (decrease) in right-of-use-asset</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:to="tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl2" xlink:title="label: IncreaseDecreaseInOperatingLeaseRightOfUseAsset to tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset_lbl2" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:title="tact_FacilityInLasVegasNevadaMember_lbl" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember_lbl">Facility located in Las Vegas, Nevada.</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember_lbl" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember_lbl" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember_lbl1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:title="tact_FacilityInLasVegasNevadaMember_lbl1" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember_lbl1">Facility in Las Vegas, Nevada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember_lbl1" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember_lbl1" />
    <link:label xlink:type="resource" xlink:label="tact_FacilityInLasVegasNevadaMember_lbl2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:title="tact_FacilityInLasVegasNevadaMember_lbl2" xml:lang="en-US" id="tact_FacilityInLasVegasNevadaMember_lbl2">Facility in Las Vegas, Nevada [Member]</link:label>
    <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="FacilityInLasVegasNevadaMember" xlink:to="tact_FacilityInLasVegasNevadaMember_lbl2" xlink:title="label: FacilityInLasVegasNevadaMember to tact_FacilityInLasVegasNevadaMember_lbl2" />
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>11
<FILENAME>tact-20221231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii"?>
<!--Generated by Broadridge PROfile 23.3.1.5138 Broadridge-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xbrli="http://www.xbrl.org/2003/instance">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" />
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" />
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SubsequentEventsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnauditedDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetailsCalc2" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetailsCalc2" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgramDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockRepurchaseProgramDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShareDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesUnrecognizedTaxBenefitsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesComponentsOfIncomeTaxBenefitDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansRestrictedStockDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansStockOptionsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansSharebasedCompensationExpenseDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansStockIncentivePlansDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/BorrowingsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#BorrowingsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlanDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#RetirementSavingsPlanDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilitiesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNetDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#InventoriesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesAdvertisingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesWarrantyDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesLeasesDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesFixedAssetsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesSegmentReportingDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusinessDetails" xlink:type="simple" xlink:href="tact-20221231.xsd#DescriptionOfBusinessDetails" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrincipleTables" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrincipleTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnauditedTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/LeasesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#LeasesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformationTables" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformationTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShareTables" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShareTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlansTables" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlansTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilitiesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilitiesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNetTables" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNetTables" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNetTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/InventoriesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#InventoriesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesTables" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPoliciesPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/SubsequentEvents" xlink:type="simple" xlink:href="tact-20221231.xsd#SubsequentEvents" />
  <link:roleRef roleURI="http://transact-tech.com/role/ChangeInAccountingPrinciple" xlink:type="simple" xlink:href="tact-20221231.xsd#ChangeInAccountingPrinciple" />
  <link:roleRef roleURI="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited" xlink:type="simple" xlink:href="tact-20221231.xsd#QuarterlyResultsOfOperationsUnaudited" />
  <link:roleRef roleURI="http://transact-tech.com/role/Leases" xlink:type="simple" xlink:href="tact-20221231.xsd#Leases" />
  <link:roleRef roleURI="http://transact-tech.com/role/GeographicAreaInformation" xlink:type="simple" xlink:href="tact-20221231.xsd#GeographicAreaInformation" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockRepurchaseProgram" xlink:type="simple" xlink:href="tact-20221231.xsd#StockRepurchaseProgram" />
  <link:roleRef roleURI="http://transact-tech.com/role/EarningsPerShare" xlink:type="simple" xlink:href="tact-20221231.xsd#EarningsPerShare" />
  <link:roleRef roleURI="http://transact-tech.com/role/IncomeTaxes" xlink:type="simple" xlink:href="tact-20221231.xsd#IncomeTaxes" />
  <link:roleRef roleURI="http://transact-tech.com/role/StockIncentivePlans" xlink:type="simple" xlink:href="tact-20221231.xsd#StockIncentivePlans" />
  <link:roleRef roleURI="http://transact-tech.com/role/Borrowings" xlink:type="simple" xlink:href="tact-20221231.xsd#Borrowings" />
  <link:roleRef roleURI="http://transact-tech.com/role/RetirementSavingsPlan" xlink:type="simple" xlink:href="tact-20221231.xsd#RetirementSavingsPlan" />
  <link:roleRef roleURI="http://transact-tech.com/role/AccruedLiabilities" xlink:type="simple" xlink:href="tact-20221231.xsd#AccruedLiabilities" />
  <link:roleRef roleURI="http://transact-tech.com/role/IntangibleAssetsNet" xlink:type="simple" xlink:href="tact-20221231.xsd#IntangibleAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/FixedAssetsNet" xlink:type="simple" xlink:href="tact-20221231.xsd#FixedAssetsNet" />
  <link:roleRef roleURI="http://transact-tech.com/role/Inventories" xlink:type="simple" xlink:href="tact-20221231.xsd#Inventories" />
  <link:roleRef roleURI="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies" xlink:type="simple" xlink:href="tact-20221231.xsd#SummaryOfSignificantAccountingPolicies" />
  <link:roleRef roleURI="http://transact-tech.com/role/DescriptionOfBusiness" xlink:type="simple" xlink:href="tact-20221231.xsd#DescriptionOfBusiness" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfCashFlows" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfChangesInShareholdersEquity" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfComprehensiveLoss" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedStatementsOfOperations" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedStatementsOfOperations" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedBalanceSheetsParenthetical" />
  <link:roleRef roleURI="http://transact-tech.com/role/ConsolidatedBalanceSheets" xlink:type="simple" xlink:href="tact-20221231.xsd#ConsolidatedBalanceSheets" />
  <link:roleRef roleURI="http://transact-tech.com/role/DocumentAndEntityInformation" xlink:type="simple" xlink:href="tact-20221231.xsd#DocumentAndEntityInformation" />
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DocumentAndEntityInformation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CoverAbstract" xlink:label="CoverAbstract" xlink:title="CoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentType" xlink:label="DocumentType" xlink:title="DocumentType" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentType" xlink:title="presentation: CoverAbstract to DocumentType" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AmendmentFlag" xlink:label="AmendmentFlag" xlink:title="AmendmentFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AmendmentFlag" xlink:title="presentation: CoverAbstract to AmendmentFlag" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentAnnualReport" xlink:label="DocumentAnnualReport" xlink:title="DocumentAnnualReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentAnnualReport" xlink:title="presentation: CoverAbstract to DocumentAnnualReport" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentPeriodEndDate" xlink:label="DocumentPeriodEndDate" xlink:title="DocumentPeriodEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentPeriodEndDate" xlink:title="presentation: CoverAbstract to DocumentPeriodEndDate" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CurrentFiscalYearEndDate" xlink:label="CurrentFiscalYearEndDate" xlink:title="CurrentFiscalYearEndDate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CurrentFiscalYearEndDate" xlink:title="presentation: CoverAbstract to CurrentFiscalYearEndDate" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalYearFocus" xlink:label="DocumentFiscalYearFocus" xlink:title="DocumentFiscalYearFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalYearFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalYearFocus" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="DocumentFiscalPeriodFocus" xlink:title="DocumentFiscalPeriodFocus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentFiscalPeriodFocus" xlink:title="presentation: CoverAbstract to DocumentFiscalPeriodFocus" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_DocumentTransitionReport" xlink:label="DocumentTransitionReport" xlink:title="DocumentTransitionReport" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="DocumentTransitionReport" xlink:title="presentation: CoverAbstract to DocumentTransitionReport" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFileNumber" xlink:label="EntityFileNumber" xlink:title="EntityFileNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFileNumber" xlink:title="presentation: CoverAbstract to EntityFileNumber" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityRegistrantName" xlink:label="EntityRegistrantName" xlink:title="EntityRegistrantName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityRegistrantName" xlink:title="presentation: CoverAbstract to EntityRegistrantName" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCentralIndexKey" xlink:label="EntityCentralIndexKey" xlink:title="EntityCentralIndexKey" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCentralIndexKey" xlink:title="presentation: CoverAbstract to EntityCentralIndexKey" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="EntityIncorporationStateCountryCode" xlink:title="EntityIncorporationStateCountryCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityIncorporationStateCountryCode" xlink:title="presentation: CoverAbstract to EntityIncorporationStateCountryCode" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityTaxIdentificationNumber" xlink:label="EntityTaxIdentificationNumber" xlink:title="EntityTaxIdentificationNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityTaxIdentificationNumber" xlink:title="presentation: CoverAbstract to EntityTaxIdentificationNumber" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine1" xlink:label="EntityAddressAddressLine1" xlink:title="EntityAddressAddressLine1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine1" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine1" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine2" xlink:label="EntityAddressAddressLine2" xlink:title="EntityAddressAddressLine2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine2" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine2" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressAddressLine3" xlink:label="EntityAddressAddressLine3" xlink:title="EntityAddressAddressLine3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressAddressLine3" xlink:title="presentation: CoverAbstract to EntityAddressAddressLine3" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCityOrTown" xlink:label="EntityAddressCityOrTown" xlink:title="EntityAddressCityOrTown" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressCityOrTown" xlink:title="presentation: CoverAbstract to EntityAddressCityOrTown" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressStateOrProvince" xlink:label="EntityAddressStateOrProvince" xlink:title="EntityAddressStateOrProvince" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressStateOrProvince" xlink:title="presentation: CoverAbstract to EntityAddressStateOrProvince" order="17.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressCountry" xlink:label="EntityAddressCountry" xlink:title="EntityAddressCountry" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressCountry" xlink:title="presentation: CoverAbstract to EntityAddressCountry" order="18.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityAddressPostalZipCode" xlink:label="EntityAddressPostalZipCode" xlink:title="EntityAddressPostalZipCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityAddressPostalZipCode" xlink:title="presentation: CoverAbstract to EntityAddressPostalZipCode" order="19.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_CityAreaCode" xlink:label="CityAreaCode" xlink:title="CityAreaCode" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="CityAreaCode" xlink:title="presentation: CoverAbstract to CityAreaCode" order="20.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_LocalPhoneNumber" xlink:label="LocalPhoneNumber" xlink:title="LocalPhoneNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="LocalPhoneNumber" xlink:title="presentation: CoverAbstract to LocalPhoneNumber" order="21.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_Security12bTitle" xlink:label="Security12bTitle" xlink:title="Security12bTitle" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="Security12bTitle" xlink:title="presentation: CoverAbstract to Security12bTitle" order="22.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_TradingSymbol" xlink:label="TradingSymbol" xlink:title="TradingSymbol" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="TradingSymbol" xlink:title="presentation: CoverAbstract to TradingSymbol" order="23.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_NoTradingSymbolFlag" xlink:label="NoTradingSymbolFlag" xlink:title="NoTradingSymbolFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="NoTradingSymbolFlag" xlink:title="presentation: CoverAbstract to NoTradingSymbolFlag" order="24.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_SecurityExchangeName" xlink:label="SecurityExchangeName" xlink:title="SecurityExchangeName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="SecurityExchangeName" xlink:title="presentation: CoverAbstract to SecurityExchangeName" order="25.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="EntityWellKnownSeasonedIssuer" xlink:title="EntityWellKnownSeasonedIssuer" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityWellKnownSeasonedIssuer" xlink:title="presentation: CoverAbstract to EntityWellKnownSeasonedIssuer" order="26.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityVoluntaryFilers" xlink:label="EntityVoluntaryFilers" xlink:title="EntityVoluntaryFilers" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityVoluntaryFilers" xlink:title="presentation: CoverAbstract to EntityVoluntaryFilers" order="27.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCurrentReportingStatus" xlink:label="EntityCurrentReportingStatus" xlink:title="EntityCurrentReportingStatus" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCurrentReportingStatus" xlink:title="presentation: CoverAbstract to EntityCurrentReportingStatus" order="28.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityInteractiveDataCurrent" xlink:label="EntityInteractiveDataCurrent" xlink:title="EntityInteractiveDataCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityInteractiveDataCurrent" xlink:title="presentation: CoverAbstract to EntityInteractiveDataCurrent" order="29.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityFilerCategory" xlink:label="EntityFilerCategory" xlink:title="EntityFilerCategory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityFilerCategory" xlink:title="presentation: CoverAbstract to EntityFilerCategory" order="30.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntitySmallBusiness" xlink:label="EntitySmallBusiness" xlink:title="EntitySmallBusiness" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntitySmallBusiness" xlink:title="presentation: CoverAbstract to EntitySmallBusiness" order="31.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityEmergingGrowthCompany" xlink:label="EntityEmergingGrowthCompany" xlink:title="EntityEmergingGrowthCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityEmergingGrowthCompany" xlink:title="presentation: CoverAbstract to EntityEmergingGrowthCompany" order="32.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_IcfrAuditorAttestationFlag" xlink:label="IcfrAuditorAttestationFlag" xlink:title="IcfrAuditorAttestationFlag" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="IcfrAuditorAttestationFlag" xlink:title="presentation: CoverAbstract to IcfrAuditorAttestationFlag" order="33.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityShellCompany" xlink:label="EntityShellCompany" xlink:title="EntityShellCompany" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityShellCompany" xlink:title="presentation: CoverAbstract to EntityShellCompany" order="34.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityPublicFloat" xlink:label="EntityPublicFloat" xlink:title="EntityPublicFloat" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityPublicFloat" xlink:title="presentation: CoverAbstract to EntityPublicFloat" order="35.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="EntityCommonStockSharesOutstanding" xlink:title="EntityCommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="EntityCommonStockSharesOutstanding" xlink:title="presentation: CoverAbstract to EntityCommonStockSharesOutstanding" order="36.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorFirmId" xlink:label="AuditorFirmId" xlink:title="AuditorFirmId" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorFirmId" xlink:title="presentation: CoverAbstract to AuditorFirmId" order="37.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorName" xlink:label="AuditorName" xlink:title="AuditorName" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorName" xlink:title="presentation: CoverAbstract to AuditorName" order="38.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2022/dei-2022.xsd#dei_AuditorLocation" xlink:label="AuditorLocation" xlink:title="AuditorLocation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CoverAbstract" xlink:to="AuditorLocation" xlink:title="presentation: CoverAbstract to AuditorLocation" order="39.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheets">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="presentation: ClassOfStockDomain to SeriesAPreferredStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="presentation: StatementClassOfStockAxis to ClassOfStockDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="presentation: StatementTable to StatementClassOfStockAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAbstract" xlink:label="AssetsAbstract" xlink:title="AssetsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="AssetsCurrentAbstract" xlink:title="AssetsCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="CashAndCashEquivalentsAtCarryingValue" xlink:title="CashAndCashEquivalentsAtCarryingValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="CashAndCashEquivalentsAtCarryingValue" xlink:title="presentation: AssetsCurrentAbstract to CashAndCashEquivalentsAtCarryingValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="AccountsReceivableNetCurrent" xlink:title="AccountsReceivableNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AccountsReceivableNetCurrent" xlink:title="presentation: AssetsCurrentAbstract to AccountsReceivableNetCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NontradeReceivablesCurrent" xlink:label="NontradeReceivablesCurrent" xlink:title="NontradeReceivablesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="NontradeReceivablesCurrent" xlink:title="presentation: AssetsCurrentAbstract to NontradeReceivablesCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="InventoryNet" xlink:title="presentation: AssetsCurrentAbstract to InventoryNet" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrepaidTaxes" xlink:label="PrepaidTaxes" xlink:title="PrepaidTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="PrepaidTaxes" xlink:title="presentation: AssetsCurrentAbstract to PrepaidTaxes" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsCurrent" xlink:label="OtherAssetsCurrent" xlink:title="OtherAssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="OtherAssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to OtherAssetsCurrent" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsCurrent" xlink:label="AssetsCurrent" xlink:title="AssetsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsCurrentAbstract" xlink:to="AssetsCurrent" xlink:title="presentation: AssetsCurrentAbstract to AssetsCurrent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AssetsCurrentAbstract" xlink:title="presentation: AssetsAbstract to AssetsCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: AssetsAbstract to PropertyPlantAndEquipmentNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="OperatingLeaseRightOfUseAsset" xlink:title="OperatingLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OperatingLeaseRightOfUseAsset" xlink:title="presentation: AssetsAbstract to OperatingLeaseRightOfUseAsset" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Goodwill" xlink:label="Goodwill" xlink:title="Goodwill" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="Goodwill" xlink:title="presentation: AssetsAbstract to Goodwill" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="presentation: AssetsAbstract to DeferredIncomeTaxAssetsNet" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="IntangibleAssetsNetExcludingGoodwill" xlink:title="IntangibleAssetsNetExcludingGoodwill" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="IntangibleAssetsNetExcludingGoodwill" xlink:title="presentation: AssetsAbstract to IntangibleAssetsNetExcludingGoodwill" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="OtherAssetsNoncurrent" xlink:title="OtherAssetsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="OtherAssetsNoncurrent" xlink:title="presentation: AssetsAbstract to OtherAssetsNoncurrent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsNoncurrent" xlink:label="AssetsNoncurrent" xlink:title="AssetsNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="AssetsNoncurrent" xlink:title="presentation: AssetsAbstract to AssetsNoncurrent" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Assets" xlink:label="Assets" xlink:title="Assets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAbstract" xlink:to="Assets" xlink:title="presentation: AssetsAbstract to Assets" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="AssetsAbstract" xlink:title="presentation: StatementLineItems to AssetsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="LiabilitiesCurrentAbstract" xlink:title="LiabilitiesCurrentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="LinesOfCreditCurrent" xlink:title="LinesOfCreditCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="LinesOfCreditCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to LinesOfCreditCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableCurrent" xlink:label="AccountsPayableCurrent" xlink:title="AccountsPayableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccountsPayableCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to AccountsPayableCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="AccruedLiabilitiesCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to AccruedLiabilitiesCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="OperatingLeaseLiabilityCurrent" xlink:title="OperatingLeaseLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="OperatingLeaseLiabilityCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to OperatingLeaseLiabilityCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to ContractWithCustomerLiabilityCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesCurrent" xlink:label="LiabilitiesCurrent" xlink:title="LiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesCurrentAbstract" xlink:to="LiabilitiesCurrent" xlink:title="presentation: LiabilitiesCurrentAbstract to LiabilitiesCurrent" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesCurrentAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesCurrentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to ContractWithCustomerLiabilityNoncurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="OperatingLeaseLiabilityNoncurrent" xlink:title="OperatingLeaseLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OperatingLeaseLiabilityNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OperatingLeaseLiabilityNoncurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="OtherLiabilitiesNoncurrent" xlink:title="OtherLiabilitiesNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="OtherLiabilitiesNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to OtherLiabilitiesNoncurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="LiabilitiesNoncurrent" xlink:title="LiabilitiesNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesNoncurrent" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesNoncurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Liabilities" xlink:label="Liabilities" xlink:title="Liabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="Liabilities" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to Liabilities" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="CommitmentsAndContingencies" xlink:title="CommitmentsAndContingencies" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="CommitmentsAndContingencies" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to CommitmentsAndContingencies" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockValue" xlink:label="PreferredStockValue" xlink:title="PreferredStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockValue" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockValue" xlink:label="CommonStockValue" xlink:title="CommonStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockValue" xlink:title="presentation: StockholdersEquityAbstract to CommonStockValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="AdditionalPaidInCapitalCommonStock" xlink:title="AdditionalPaidInCapitalCommonStock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AdditionalPaidInCapitalCommonStock" xlink:title="presentation: StockholdersEquityAbstract to AdditionalPaidInCapitalCommonStock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="presentation: StockholdersEquityAbstract to RetainedEarningsAccumulatedDeficit" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="AccumulatedOtherComprehensiveIncomeLossNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:title="presentation: StockholdersEquityAbstract to AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockValue" xlink:label="TreasuryStockValue" xlink:title="TreasuryStockValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockValue" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockValue" order="5.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="StockholdersEquity" xlink:title="presentation: StockholdersEquityAbstract to StockholdersEquity" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="LiabilitiesAndStockholdersEquity" xlink:title="LiabilitiesAndStockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="LiabilitiesAndStockholdersEquity" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to LiabilitiesAndStockholdersEquity" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfFinancialPositionAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="StatementClassOfStockAxis" xlink:title="StatementClassOfStockAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ClassOfStockDomain" xlink:label="ClassOfStockDomain" xlink:title="ClassOfStockDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="SeriesAPreferredStockMember" xlink:title="SeriesAPreferredStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ClassOfStockDomain" xlink:to="SeriesAPreferredStockMember" xlink:title="presentation: ClassOfStockDomain to SeriesAPreferredStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementClassOfStockAxis" xlink:to="ClassOfStockDomain" xlink:title="presentation: StatementClassOfStockAxis to ClassOfStockDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementClassOfStockAxis" xlink:title="presentation: StatementTable to StatementClassOfStockAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="LiabilitiesAndStockholdersEquityAbstract" xlink:title="LiabilitiesAndStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="StockholdersEquityAbstract" xlink:title="StockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="PreferredStockParOrStatedValuePerShare" xlink:title="PreferredStockParOrStatedValuePerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockParOrStatedValuePerShare" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockParOrStatedValuePerShare" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="PreferredStockSharesAuthorized" xlink:title="PreferredStockSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesAuthorized" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesAuthorized" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="PreferredStockSharesIssued" xlink:title="PreferredStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesIssued" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesIssued" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="PreferredStockSharesOutstanding" xlink:title="PreferredStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="PreferredStockSharesOutstanding" xlink:title="presentation: StockholdersEquityAbstract to PreferredStockSharesOutstanding" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="CommonStockParOrStatedValuePerShare" xlink:title="CommonStockParOrStatedValuePerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockParOrStatedValuePerShare" xlink:title="presentation: StockholdersEquityAbstract to CommonStockParOrStatedValuePerShare" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="CommonStockSharesAuthorized" xlink:title="CommonStockSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesAuthorized" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesAuthorized" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesIssued" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesIssued" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="CommonStockSharesOutstanding" xlink:title="CommonStockSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="CommonStockSharesOutstanding" xlink:title="presentation: StockholdersEquityAbstract to CommonStockSharesOutstanding" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockShares" xlink:label="TreasuryStockShares" xlink:title="TreasuryStockShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StockholdersEquityAbstract" xlink:to="TreasuryStockShares" xlink:title="presentation: StockholdersEquityAbstract to TreasuryStockShares" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LiabilitiesAndStockholdersEquityAbstract" xlink:to="StockholdersEquityAbstract" xlink:title="presentation: LiabilitiesAndStockholdersEquityAbstract to StockholdersEquityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="LiabilitiesAndStockholdersEquityAbstract" xlink:title="presentation: StatementLineItems to LiabilitiesAndStockholdersEquityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfFinancialPositionAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfOperations">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: IncomeStatementAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="CostOfRevenue" xlink:title="presentation: IncomeStatementAbstract to CostOfRevenue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="GrossProfit" xlink:title="presentation: IncomeStatementAbstract to GrossProfit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="OperatingExpensesAbstract" xlink:title="OperatingExpensesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="ResearchAndDevelopmentExpense" xlink:title="presentation: OperatingExpensesAbstract to ResearchAndDevelopmentExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="SellingAndMarketingExpense" xlink:title="SellingAndMarketingExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="SellingAndMarketingExpense" xlink:title="presentation: OperatingExpensesAbstract to SellingAndMarketingExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="GeneralAndAdministrativeExpense" xlink:title="GeneralAndAdministrativeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="GeneralAndAdministrativeExpense" xlink:title="presentation: OperatingExpensesAbstract to GeneralAndAdministrativeExpense" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LitigationSettlementExpense" xlink:label="LitigationSettlementExpense" xlink:title="LitigationSettlementExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="LitigationSettlementExpense" xlink:title="presentation: OperatingExpensesAbstract to LitigationSettlementExpense" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingExpenses" xlink:label="OperatingExpenses" xlink:title="OperatingExpenses" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingExpensesAbstract" xlink:to="OperatingExpenses" xlink:title="presentation: OperatingExpensesAbstract to OperatingExpenses" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingExpensesAbstract" xlink:title="presentation: IncomeStatementAbstract to OperatingExpensesAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to OperatingIncomeLoss" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="NonoperatingIncomeExpenseAbstract" xlink:title="NonoperatingIncomeExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestExpense" xlink:label="InterestExpense" xlink:title="InterestExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="InterestExpense" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to InterestExpense" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestIncomeDomesticDeposits" xlink:label="InterestIncomeDomesticDeposits" xlink:title="InterestIncomeDomesticDeposits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="InterestIncomeDomesticDeposits" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to InterestIncomeDomesticDeposits" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="OtherNonoperatingIncomeExpense" xlink:title="OtherNonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="OtherNonoperatingIncomeExpense" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to OtherNonoperatingIncomeExpense" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_GainFromEmployeeRetentionCredit" xlink:label="GainFromEmployeeRetentionCredit" xlink:title="GainFromEmployeeRetentionCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="GainFromEmployeeRetentionCredit" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to GainFromEmployeeRetentionCredit" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="GainsLossesOnExtinguishmentOfDebt" xlink:title="GainsLossesOnExtinguishmentOfDebt" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="GainsLossesOnExtinguishmentOfDebt" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to GainsLossesOnExtinguishmentOfDebt" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="NonoperatingIncomeExpense" xlink:title="NonoperatingIncomeExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NonoperatingIncomeExpenseAbstract" xlink:to="NonoperatingIncomeExpense" xlink:title="presentation: NonoperatingIncomeExpenseAbstract to NonoperatingIncomeExpense" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="NonoperatingIncomeExpenseAbstract" xlink:title="presentation: IncomeStatementAbstract to NonoperatingIncomeExpenseAbstract" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="presentation: IncomeStatementAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeStatementAbstract to IncomeTaxExpenseBenefit" order="7.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to NetIncomeLoss" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareAbstract" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareBasicOtherDisclosuresAbstract" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockDividendsPerShareCashPaid" xlink:label="CommonStockDividendsPerShareCashPaid" xlink:title="CommonStockDividendsPerShareCashPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="CommonStockDividendsPerShareCashPaid" xlink:title="presentation: IncomeStatementAbstract to CommonStockDividendsPerShareCashPaid" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="ComprehensiveIncomeNetOfTax" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to ComprehensiveIncomeNetOfTax" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementTable" xlink:label="StatementTable" xlink:title="StatementTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockMember" xlink:label="CommonStockMember" xlink:title="CommonStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="CommonStockMember" xlink:title="presentation: StatementEquityComponentsAxis to CommonStockMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="AdditionalPaidInCapitalMember" xlink:title="AdditionalPaidInCapitalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AdditionalPaidInCapitalMember" xlink:title="presentation: StatementEquityComponentsAxis to AdditionalPaidInCapitalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="RetainedEarningsMember" xlink:title="presentation: StatementEquityComponentsAxis to RetainedEarningsMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockMember" xlink:label="TreasuryStockMember" xlink:title="TreasuryStockMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="TreasuryStockMember" xlink:title="presentation: StatementEquityComponentsAxis to TreasuryStockMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="AccumulatedOtherComprehensiveIncomeMember" xlink:title="AccumulatedOtherComprehensiveIncomeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="AccumulatedOtherComprehensiveIncomeMember" xlink:title="presentation: StatementEquityComponentsAxis to AccumulatedOtherComprehensiveIncomeMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="presentation: StatementEquityComponentsAxis to EquityComponentDomain" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementEquityComponentsAxis" xlink:title="presentation: StatementTable to StatementEquityComponentsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementLineItems" xlink:label="StatementLineItems" xlink:title="StatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:label="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="IncreaseDecreaseInStockholdersEquityRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="CommonStockSharesIssued" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to CommonStockSharesIssued" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueStockOptionsExercised" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueStockOptionsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesStockOptionsExercised" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:label="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodValueNewIssues" xlink:label="StockIssuedDuringPeriodValueNewIssues" xlink:title="StockIssuedDuringPeriodValueNewIssues" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodValueNewIssues" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodValueNewIssues" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="StockIssuedDuringPeriodSharesNewIssues" xlink:title="StockIssuedDuringPeriodSharesNewIssues" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockIssuedDuringPeriodSharesNewIssues" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockIssuedDuringPeriodSharesNewIssues" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:label="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockGrantedDuringPeriodValueSharebasedCompensationForfeited" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockGrantedDuringPeriodValueSharebasedCompensationForfeited" order="8.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="SharesPaidForTaxWithholdingForShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to SharesPaidForTaxWithholdingForShareBasedCompensation" order="9.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="NetIncomeLoss" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to NetIncomeLoss" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity_2" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="StockholdersEquity_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to StockholdersEquity" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CommonStockSharesIssued" xlink:label="CommonStockSharesIssued_2" xlink:title="CommonStockSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="CommonStockSharesIssued_2" xlink:title="presentation: IncreaseDecreaseInStockholdersEquityRollForward to CommonStockSharesIssued" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementLineItems" xlink:to="IncreaseDecreaseInStockholdersEquityRollForward" xlink:title="presentation: StatementLineItems to IncreaseDecreaseInStockholdersEquityRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementTable" xlink:to="StatementLineItems" xlink:title="presentation: StatementTable to StatementLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="StatementTable" xlink:title="presentation: StatementOfStockholdersEquityAbstract to StatementTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensation" xlink:label="ShareBasedCompensation" xlink:title="ShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ShareBasedCompensation" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to ShareBasedCompensation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DepreciationAndAmortization" xlink:label="DepreciationAndAmortization" xlink:title="DepreciationAndAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="DepreciationAndAmortization" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to DepreciationAndAmortization" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to DeferredIncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainLossOnSaleOfProperty" xlink:label="GainLossOnSaleOfProperty" xlink:title="GainLossOnSaleOfProperty" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="GainLossOnSaleOfProperty" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to GainLossOnSaleOfProperty" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:label="ForeignCurrencyTransactionGainLossBeforeTax" xlink:title="ForeignCurrencyTransactionGainLossBeforeTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="ForeignCurrencyTransactionGainLossBeforeTax" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to ForeignCurrencyTransactionGainLossBeforeTax" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GainsLossesOnExtinguishmentOfDebt" xlink:label="GainsLossesOnExtinguishmentOfDebt" xlink:title="GainsLossesOnExtinguishmentOfDebt" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="GainsLossesOnExtinguishmentOfDebt" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to GainsLossesOnExtinguishmentOfDebt" order="5.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInReceivables" xlink:label="IncreaseDecreaseInReceivables" xlink:title="IncreaseDecreaseInReceivables" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInReceivables" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInReceivables" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:label="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:title="IncreaseDecreaseInEmployeeRetentionCreditReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInEmployeeRetentionCreditReceivable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInEmployeeRetentionCreditReceivable" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInInventories" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInInventories" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInPrepaidTaxes" xlink:label="IncreaseDecreaseInPrepaidTaxes" xlink:title="IncreaseDecreaseInPrepaidTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInPrepaidTaxes" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInPrepaidTaxes" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="IncreaseDecreaseInOtherOperatingAssets" xlink:title="IncreaseDecreaseInOtherOperatingAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInOtherOperatingAssets" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInOtherOperatingAssets" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="IncreaseDecreaseInAccountsPayable" xlink:title="IncreaseDecreaseInAccountsPayable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccountsPayable" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccountsPayable" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:title="presentation: IncreaseDecreaseInOperatingCapitalAbstract to IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="IncreaseDecreaseInOperatingCapitalAbstract" xlink:title="presentation: AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract to IncreaseDecreaseInOperatingCapitalAbstract" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="NetCashProvidedByUsedInOperatingActivities" xlink:title="NetCashProvidedByUsedInOperatingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivities" xlink:title="presentation: NetCashProvidedByUsedInOperatingActivitiesAbstract to NetCashProvidedByUsedInOperatingActivities" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="PaymentsToAcquirePropertyPlantAndEquipment" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to PaymentsToAcquirePropertyPlantAndEquipment" order="0.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:title="ProceedsFromSaleOfPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to ProceedsFromSaleOfPropertyPlantAndEquipment" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaymentsForProceedsFromNotesReceivable" xlink:label="PaymentsForProceedsFromNotesReceivable" xlink:title="PaymentsForProceedsFromNotesReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="PaymentsForProceedsFromNotesReceivable" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to PaymentsForProceedsFromNotesReceivable" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="NetCashProvidedByUsedInInvestingActivities" xlink:title="NetCashProvidedByUsedInInvestingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivities" xlink:title="presentation: NetCashProvidedByUsedInInvestingActivitiesAbstract to NetCashProvidedByUsedInInvestingActivities" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="ProceedsFromLinesOfCredit" xlink:title="ProceedsFromLinesOfCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ProceedsFromLinesOfCredit" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to ProceedsFromLinesOfCredit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="RepaymentsOfLinesOfCredit" xlink:title="RepaymentsOfLinesOfCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="RepaymentsOfLinesOfCredit" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to RepaymentsOfLinesOfCredit" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt" xlink:label="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:title="ProceedsFromIssuanceOfOtherLongTermDebt" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ProceedsFromIssuanceOfOtherLongTermDebt" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to ProceedsFromIssuanceOfOtherLongTermDebt" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to ProceedsFromStockOptionsExercised" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="ProceedsFromIssuanceOfCommonStock" xlink:title="ProceedsFromIssuanceOfCommonStock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ProceedsFromIssuanceOfCommonStock" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to ProceedsFromIssuanceOfCommonStock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfStockIssuanceCosts" xlink:label="PaymentsOfStockIssuanceCosts" xlink:title="PaymentsOfStockIssuanceCosts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="PaymentsOfStockIssuanceCosts" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to PaymentsOfStockIssuanceCosts" order="5.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to PaymentsRelatedToTaxWithholdingForShareBasedCompensation" order="6.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PaymentsOfLoanCosts" xlink:label="PaymentsOfLoanCosts" xlink:title="PaymentsOfLoanCosts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="PaymentsOfLoanCosts" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to PaymentsOfLoanCosts" order="7.0" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="NetCashProvidedByUsedInFinancingActivities" xlink:title="NetCashProvidedByUsedInFinancingActivities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivities" xlink:title="presentation: NetCashProvidedByUsedInFinancingActivitiesAbstract to NetCashProvidedByUsedInFinancingActivities" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_2" xlink:title="presentation: StatementOfCashFlowsAbstract to CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="SupplementalCashFlowInformationAbstract" xlink:title="SupplementalCashFlowInformationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InterestPaidNet" xlink:label="InterestPaidNet" xlink:title="InterestPaidNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="InterestPaidNet" xlink:title="presentation: SupplementalCashFlowInformationAbstract to InterestPaidNet" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxesPaid" xlink:label="IncomeTaxesPaid" xlink:title="IncomeTaxesPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="IncomeTaxesPaid" xlink:title="presentation: SupplementalCashFlowInformationAbstract to IncomeTaxesPaid" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="CapitalExpendituresIncurredButNotYetPaid" xlink:title="CapitalExpendituresIncurredButNotYetPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SupplementalCashFlowInformationAbstract" xlink:to="CapitalExpendituresIncurredButNotYetPaid" xlink:title="presentation: SupplementalCashFlowInformationAbstract to CapitalExpendituresIncurredButNotYetPaid" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="SupplementalCashFlowInformationAbstract" xlink:title="presentation: StatementOfCashFlowsAbstract to SupplementalCashFlowInformationAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusiness">
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NatureOfOperations" xlink:label="NatureOfOperations" xlink:title="NatureOfOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NatureOfOperations" xlink:title="presentation: DescriptionOfBusinessAbstract to NatureOfOperations" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Inventories">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="InventoryDisclosureTextBlock" xlink:title="InventoryDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryDisclosureTextBlock" xlink:title="presentation: InventoryDisclosureAbstract to InventoryDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNet">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentDisclosureTextBlock" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNet">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="IntangibleAssetsDisclosureTextBlock" xlink:title="IntangibleAssetsDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="IntangibleAssetsDisclosureTextBlock" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to IntangibleAssetsDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilities">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:title="presentation: PayablesAndAccrualsAbstract to AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlan">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="CompensationAndEmployeeBenefitPlansTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="CompensationAndEmployeeBenefitPlansTextBlock" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to CompensationAndEmployeeBenefitPlansTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Borrowings">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="DebtDisclosureTextBlock" xlink:title="DebtDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="DebtDisclosureTextBlock" xlink:title="presentation: DebtDisclosureAbstract to DebtDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlans">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxes">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="IncomeTaxDisclosureTextBlock" xlink:title="IncomeTaxDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxDisclosureTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShare">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="EarningsPerShareTextBlock" xlink:title="EarningsPerShareTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareTextBlock" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgram">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockTextBlock" xlink:label="TreasuryStockTextBlock" xlink:title="TreasuryStockTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="TreasuryStockTextBlock" xlink:title="presentation: EquityAbstract to TreasuryStockTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformation">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="SegmentReportingDisclosureTextBlock" xlink:title="SegmentReportingDisclosureTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="SegmentReportingDisclosureTextBlock" xlink:title="presentation: SegmentReportingAbstract to SegmentReportingDisclosureTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/Leases">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="LesseeOperatingLeasesTextBlock" xlink:title="LesseeOperatingLeasesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeasesTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeasesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="QuarterlyFinancialInformationTextBlock" xlink:title="QuarterlyFinancialInformationTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="QuarterlyFinancialInformationTextBlock" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to QuarterlyFinancialInformationTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrinciple">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEvents">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="SubsequentEventsAbstract" xlink:title="SubsequentEventsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="SubsequentEventsTextBlock" xlink:title="SubsequentEventsTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventsAbstract" xlink:to="SubsequentEventsTextBlock" xlink:title="presentation: SubsequentEventsAbstract to SubsequentEventsTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="ConsolidationPolicyTextBlock" xlink:title="ConsolidationPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ConsolidationPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ConsolidationPolicyTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UseOfEstimates" xlink:label="UseOfEstimates" xlink:title="UseOfEstimates" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="UseOfEstimates" xlink:title="presentation: AccountingPoliciesAbstract to UseOfEstimates" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="SegmentReportingPolicyPolicyTextBlock" xlink:title="SegmentReportingPolicyPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="SegmentReportingPolicyPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to SegmentReportingPolicyPolicyTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="CashAndCashEquivalentsPolicyTextBlock" xlink:title="CashAndCashEquivalentsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="CashAndCashEquivalentsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to CashAndCashEquivalentsPolicyTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:label="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" xlink:title="presentation: AccountingPoliciesAbstract to ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="InventoryPolicyTextBlock" xlink:title="InventoryPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="InventoryPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to InventoryPolicyTextBlock" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="PropertyPlantAndEquipmentPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to PropertyPlantAndEquipmentPolicyTextBlock" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="LesseeLeasesPolicyTextBlock" xlink:title="LesseeLeasesPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="LesseeLeasesPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to LesseeLeasesPolicyTextBlock" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:label="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="GoodwillAndIntangibleAssetsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="GoodwillAndIntangibleAssetsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to GoodwillAndIntangibleAssetsPolicyTextBlock" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="RevenueFromContractWithCustomerPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="RevenueFromContractWithCustomerPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to RevenueFromContractWithCustomerPolicyTextBlock" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="ConcentrationRiskCreditRisk" xlink:title="ConcentrationRiskCreditRisk" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ConcentrationRiskCreditRisk" xlink:title="presentation: AccountingPoliciesAbstract to ConcentrationRiskCreditRisk" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="ResearchAndDevelopmentExpensePolicy" xlink:title="ResearchAndDevelopmentExpensePolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ResearchAndDevelopmentExpensePolicy" xlink:title="presentation: AccountingPoliciesAbstract to ResearchAndDevelopmentExpensePolicy" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="AdvertisingCostsPolicyTextBlock" xlink:title="AdvertisingCostsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="AdvertisingCostsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to AdvertisingCostsPolicyTextBlock" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="IncomeTaxPolicyTextBlock" xlink:title="IncomeTaxPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="IncomeTaxPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to IncomeTaxPolicyTextBlock" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:title="presentation: AccountingPoliciesAbstract to ShareBasedCompensationOptionAndIncentivePlansPolicy" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="EarningsPerSharePolicyTextBlock" xlink:title="EarningsPerSharePolicyTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="EarningsPerSharePolicyTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to EarningsPerSharePolicyTextBlock" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="PriorPeriodReclassificationAdjustmentDescription" xlink:title="PriorPeriodReclassificationAdjustmentDescription" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="PriorPeriodReclassificationAdjustmentDescription" xlink:title="presentation: AccountingPoliciesAbstract to PriorPeriodReclassificationAdjustmentDescription" order="17.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:label="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="DisaggregationOfRevenueTableTextBlock" xlink:title="DisaggregationOfRevenueTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="ContractWithCustomerAssetAndLiabilityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerAssetAndLiabilityTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:label="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" xlink:title="presentation: AccountingPoliciesAbstract to SchedulesOfConcentrationOfRiskByRiskFactorTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="ScheduleOfInventoryCurrentTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="ScheduleOfInventoryCurrentTableTextBlock" xlink:title="presentation: InventoryDisclosureAbstract to ScheduleOfInventoryCurrentTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="PropertyPlantAndEquipmentTextBlock" xlink:title="PropertyPlantAndEquipmentTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentTextBlock" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="ScheduleOfAccruedLiabilitiesTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:title="presentation: PayablesAndAccrualsAbstract to ScheduleOfAccruedLiabilitiesTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SummaryOfValuationAllowanceTextBlock" xlink:label="SummaryOfValuationAllowanceTextBlock" xlink:title="SummaryOfValuationAllowanceTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="SummaryOfValuationAllowanceTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to SummaryOfValuationAllowanceTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:label="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:title="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" xlink:title="presentation: IncomeTaxDisclosureAbstract to SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:title="presentation: EarningsPerShareAbstract to ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:title="presentation: SegmentReportingAbstract to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:label="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:label="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseLiabilityMaturityTableTextBlock" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="ScheduleOfQuarterlyFinancialInformationTableTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to ScheduleOfQuarterlyFinancialInformationTableTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleTables">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:label="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/DescriptionOfBusinessDetails">
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DescriptionOfBusinessAbstract" xlink:label="DescriptionOfBusinessAbstract" xlink:title="DescriptionOfBusinessAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NumberOfOperatingSegments" xlink:title="presentation: DescriptionOfBusinessAbstract to NumberOfOperatingSegments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NumberOfSoftwareSolutions" xlink:label="NumberOfSoftwareSolutions" xlink:title="NumberOfSoftwareSolutions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="NumberOfSoftwareSolutions" xlink:title="presentation: DescriptionOfBusinessAbstract to NumberOfSoftwareSolutions" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemTable" xlink:label="UnusualOrInfrequentItemTable" xlink:title="UnusualOrInfrequentItemTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemAxis" xlink:label="UnusualOrInfrequentItemAxis" xlink:title="UnusualOrInfrequentItemAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemDomain" xlink:label="UnusualOrInfrequentItemDomain" xlink:title="UnusualOrInfrequentItemDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_Covid19Member" xlink:label="Covid19Member" xlink:title="Covid19Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="UnusualOrInfrequentItemDomain" xlink:to="Covid19Member" xlink:title="presentation: UnusualOrInfrequentItemDomain to Covid19Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="UnusualOrInfrequentItemAxis" xlink:to="UnusualOrInfrequentItemDomain" xlink:title="presentation: UnusualOrInfrequentItemAxis to UnusualOrInfrequentItemDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="UnusualOrInfrequentItemTable" xlink:to="UnusualOrInfrequentItemAxis" xlink:title="presentation: UnusualOrInfrequentItemTable to UnusualOrInfrequentItemAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnusualOrInfrequentItemLineItems" xlink:label="UnusualOrInfrequentItemLineItems" xlink:title="UnusualOrInfrequentItemLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="ExtraordinaryAndUnusualItemsAbstract" xlink:title="ExtraordinaryAndUnusualItemsAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NumberOfManufacturers" xlink:label="NumberOfManufacturers" xlink:title="NumberOfManufacturers" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="NumberOfManufacturers" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to NumberOfManufacturers" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInWorkforce" xlink:label="PercentageReductionInWorkforce" xlink:title="PercentageReductionInWorkforce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="PercentageReductionInWorkforce" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to PercentageReductionInWorkforce" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInSalaries" xlink:label="PercentageReductionInSalaries" xlink:title="PercentageReductionInSalaries" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="PercentageReductionInSalaries" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to PercentageReductionInSalaries" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PercentageReductionInCashRetainerFees" xlink:label="PercentageReductionInCashRetainerFees" xlink:title="PercentageReductionInCashRetainerFees" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="PercentageReductionInCashRetainerFees" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to PercentageReductionInCashRetainerFees" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromIssuanceOfCommonStock" xlink:label="ProceedsFromIssuanceOfCommonStock" xlink:title="ProceedsFromIssuanceOfCommonStock" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="ProceedsFromIssuanceOfCommonStock" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to ProceedsFromIssuanceOfCommonStock" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="StockIssuedDuringPeriodSharesNewIssues" xlink:title="StockIssuedDuringPeriodSharesNewIssues" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="StockIssuedDuringPeriodSharesNewIssues" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to StockIssuedDuringPeriodSharesNewIssues" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_GainFromEmployeeRetentionCredit" xlink:label="GainFromEmployeeRetentionCredit" xlink:title="GainFromEmployeeRetentionCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtraordinaryAndUnusualItemsAbstract" xlink:to="GainFromEmployeeRetentionCredit" xlink:title="presentation: ExtraordinaryAndUnusualItemsAbstract to GainFromEmployeeRetentionCredit" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="UnusualOrInfrequentItemLineItems" xlink:to="ExtraordinaryAndUnusualItemsAbstract" xlink:title="presentation: UnusualOrInfrequentItemLineItems to ExtraordinaryAndUnusualItemsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="UnusualOrInfrequentItemTable" xlink:to="UnusualOrInfrequentItemLineItems" xlink:title="presentation: UnusualOrInfrequentItemTable to UnusualOrInfrequentItemLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="UnusualOrInfrequentItemTable" xlink:title="presentation: DescriptionOfBusinessAbstract to UnusualOrInfrequentItemTable" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaycheckProtectionProgramLoanMember" xlink:label="PaycheckProtectionProgramLoanMember" xlink:title="PaycheckProtectionProgramLoanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentNameDomain" xlink:to="PaycheckProtectionProgramLoanMember" xlink:title="presentation: DebtInstrumentNameDomain to PaycheckProtectionProgramLoanMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="presentation: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="presentation: DebtInstrumentAxis to DebtInstrumentNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentsAbstract" xlink:label="DebtInstrumentsAbstract" xlink:title="DebtInstrumentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="DebtInstrumentFaceAmount" xlink:title="DebtInstrumentFaceAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentsAbstract" xlink:to="DebtInstrumentFaceAmount" xlink:title="presentation: DebtInstrumentsAbstract to DebtInstrumentFaceAmount" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentsAbstract" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="presentation: DebtInstrumentsAbstract to LineOfCreditFacilityMaximumBorrowingCapacity" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentLineItems" xlink:to="DebtInstrumentsAbstract" xlink:title="presentation: DebtInstrumentLineItems to DebtInstrumentsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentLineItems" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DescriptionOfBusinessAbstract" xlink:to="DebtInstrumentTable" xlink:title="presentation: DescriptionOfBusinessAbstract to DebtInstrumentTable" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="NumberOfOperatingSegments" xlink:title="NumberOfOperatingSegments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="NumberOfOperatingSegments" xlink:title="presentation: SegmentReportingAbstract to NumberOfOperatingSegments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="SegmentReportingAbstract" xlink:title="presentation: AccountingPoliciesAbstract to SegmentReportingAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:label="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:label="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="AllowanceForDoubtfulAccountsReceivableRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="ProvisionForDoubtfulAccounts" xlink:title="ProvisionForDoubtfulAccounts" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="ProvisionForDoubtfulAccounts" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to ProvisionForDoubtfulAccounts" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="AllowanceForDoubtfulAccountsReceivableWriteOffs" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableWriteOffs" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="AllowanceForDoubtfulAccountsReceivableCurrent_2" xlink:title="AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="AllowanceForDoubtfulAccountsReceivableCurrent_2" xlink:title="presentation: AllowanceForDoubtfulAccountsReceivableRollforward to AllowanceForDoubtfulAccountsReceivableCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:to="AllowanceForDoubtfulAccountsReceivableRollforward" xlink:title="presentation: AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract to AllowanceForDoubtfulAccountsReceivableRollforward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" xlink:title="presentation: AccountingPoliciesAbstract to AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ToolsDiesAndMoldsMember" xlink:label="ToolsDiesAndMoldsMember" xlink:title="ToolsDiesAndMoldsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ToolsDiesAndMoldsMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ToolsDiesAndMoldsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="PropertyPlantAndEquipmentUsefulLife" xlink:title="PropertyPlantAndEquipmentUsefulLife" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="PropertyPlantAndEquipmentUsefulLife" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to PropertyPlantAndEquipmentUsefulLife" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_Depreciation" xlink:label="Depreciation" xlink:title="Depreciation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="Depreciation" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to Depreciation" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentAbstract" xlink:title="presentation: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentLineItems" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="presentation: AccountingPoliciesAbstract to ScheduleOfPropertyPlantAndEquipmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionTable" xlink:label="LesseeLeaseDescriptionTable" xlink:title="LesseeLeaseDescriptionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BuildingMember" xlink:label="BuildingMember" xlink:title="BuildingMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="BuildingMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to BuildingMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInLasVegasNevadaMember" xlink:label="FacilityInLasVegasNevadaMember" xlink:title="FacilityInLasVegasNevadaMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInLasVegasNevadaMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FacilityInLasVegasNevadaMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FacilityInHamdenConnecticutMember" xlink:label="FacilityInHamdenConnecticutMember" xlink:title="FacilityInHamdenConnecticutMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FacilityInHamdenConnecticutMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FacilityInHamdenConnecticutMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: LesseeLeaseDescriptionTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionTable" xlink:to="RangeAxis" xlink:title="presentation: LesseeLeaseDescriptionTable to RangeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeLeaseDescriptionLineItems" xlink:label="LesseeLeaseDescriptionLineItems" xlink:title="LesseeLeaseDescriptionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AssetsAndLiabilitiesLesseeAbstract" xlink:label="AssetsAndLiabilitiesLesseeAbstract" xlink:title="AssetsAndLiabilitiesLesseeAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:label="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="IncreaseDecreaseInOperatingLeaseRightOfUseAsset" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to IncreaseDecreaseInOperatingLeaseRightOfUseAsset" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="IncreaseDecreaseInOperatingLeaseLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="IncreaseDecreaseInOperatingLeaseLiability" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to IncreaseDecreaseInOperatingLeaseLiability" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRemainingLeaseTerm" xlink:label="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="LesseeOperatingLeaseRemainingLeaseTerm" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="LesseeOperatingLeaseRemainingLeaseTerm" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to LesseeOperatingLeaseRemainingLeaseTerm" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="LesseeOperatingLeaseRenewalTerm" xlink:title="LesseeOperatingLeaseRenewalTerm" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AssetsAndLiabilitiesLesseeAbstract" xlink:to="LesseeOperatingLeaseRenewalTerm" xlink:title="presentation: AssetsAndLiabilitiesLesseeAbstract to LesseeOperatingLeaseRenewalTerm" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionLineItems" xlink:to="AssetsAndLiabilitiesLesseeAbstract" xlink:title="presentation: LesseeLeaseDescriptionLineItems to AssetsAndLiabilitiesLesseeAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeLeaseDescriptionTable" xlink:to="LesseeLeaseDescriptionLineItems" xlink:title="presentation: LesseeLeaseDescriptionTable to LesseeLeaseDescriptionLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="LesseeLeaseDescriptionTable" xlink:title="presentation: AccountingPoliciesAbstract to LesseeLeaseDescriptionTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetImpairment" xlink:label="GoodwillAndIntangibleAssetImpairment" xlink:title="GoodwillAndIntangibleAssetImpairment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="GoodwillAndIntangibleAssetImpairment" xlink:title="presentation: AccountingPoliciesAbstract to GoodwillAndIntangibleAssetImpairment" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:label="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" xlink:title="presentation: AccountingPoliciesAbstract to TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="DisaggregationOfRevenueTable" xlink:title="DisaggregationOfRevenueTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductOrServiceAxis" xlink:label="ProductOrServiceAxis" xlink:title="ProductOrServiceAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ProductsAndServicesDomain" xlink:label="ProductsAndServicesDomain" xlink:title="ProductsAndServicesDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FoodServiceTechnologyMember" xlink:label="FoodServiceTechnologyMember" xlink:title="FoodServiceTechnologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="FoodServiceTechnologyMember" xlink:title="presentation: ProductsAndServicesDomain to FoodServiceTechnologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PosAutomationAndBankingMember" xlink:label="PosAutomationAndBankingMember" xlink:title="PosAutomationAndBankingMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="PosAutomationAndBankingMember" xlink:title="presentation: ProductsAndServicesDomain to PosAutomationAndBankingMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_CasinoAndGamingMember" xlink:label="CasinoAndGamingMember" xlink:title="CasinoAndGamingMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="CasinoAndGamingMember" xlink:title="presentation: ProductsAndServicesDomain to CasinoAndGamingMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_LotteryMember" xlink:label="LotteryMember" xlink:title="LotteryMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="LotteryMember" xlink:title="presentation: ProductsAndServicesDomain to LotteryMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PrintrexMember" xlink:label="PrintrexMember" xlink:title="PrintrexMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="PrintrexMember" xlink:title="presentation: ProductsAndServicesDomain to PrintrexMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TransactServicesGroupMember" xlink:label="TransactServicesGroupMember" xlink:title="TransactServicesGroupMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductsAndServicesDomain" xlink:to="TransactServicesGroupMember" xlink:title="presentation: ProductsAndServicesDomain to TransactServicesGroupMember" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductOrServiceAxis" xlink:to="ProductsAndServicesDomain" xlink:title="presentation: ProductOrServiceAxis to ProductsAndServicesDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="ProductOrServiceAxis" xlink:title="presentation: DisaggregationOfRevenueTable to ProductOrServiceAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="presentation: SegmentGeographicalDomain to InternationalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: DisaggregationOfRevenueTable to StatementGeographicalAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="DisaggregationOfRevenueLineItems" xlink:title="DisaggregationOfRevenueLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisaggregationOfRevenueAbstract" xlink:label="DisaggregationOfRevenueAbstract" xlink:title="DisaggregationOfRevenueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: DisaggregationOfRevenueAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueLineItems" xlink:to="DisaggregationOfRevenueAbstract" xlink:title="presentation: DisaggregationOfRevenueLineItems to DisaggregationOfRevenueAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisaggregationOfRevenueTable" xlink:to="DisaggregationOfRevenueLineItems" xlink:title="presentation: DisaggregationOfRevenueTable to DisaggregationOfRevenueLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="DisaggregationOfRevenueTable" xlink:title="presentation: AccountingPoliciesAbstract to DisaggregationOfRevenueTable" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerRevenueRecognized" xlink:label="ContractWithCustomerRevenueRecognized" xlink:title="ContractWithCustomerRevenueRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerRevenueRecognized" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerRevenueRecognized" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityAbstract" xlink:label="ContractWithCustomerLiabilityAbstract" xlink:title="ContractWithCustomerLiabilityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="ContractWithCustomerAssetNetCurrent" xlink:title="ContractWithCustomerAssetNetCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerAssetNetCurrent" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerAssetNetCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerAssetNetNoncurrent" xlink:label="ContractWithCustomerAssetNetNoncurrent" xlink:title="ContractWithCustomerAssetNetNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerAssetNetNoncurrent" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerAssetNetNoncurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:label="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="ContractWithCustomerLiabilityCurrent" xlink:title="ContractWithCustomerLiabilityCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityCurrent" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerLiabilityCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="ContractWithCustomerLiabilityNoncurrent" xlink:title="ContractWithCustomerLiabilityNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerLiabilityNoncurrent" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerLiabilityNoncurrent" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ContractWithCustomerAssetLiabilityNet" xlink:label="ContractWithCustomerAssetLiabilityNet" xlink:title="ContractWithCustomerAssetLiabilityNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ContractWithCustomerLiabilityAbstract" xlink:to="ContractWithCustomerAssetLiabilityNet" xlink:title="presentation: ContractWithCustomerLiabilityAbstract to ContractWithCustomerAssetLiabilityNet" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ContractWithCustomerLiabilityAbstract" xlink:title="presentation: AccountingPoliciesAbstract to ContractWithCustomerLiabilityAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuePerformanceObligationAbstract" xlink:label="RevenuePerformanceObligationAbstract" xlink:title="RevenuePerformanceObligationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="RevenueRemainingPerformanceObligation" xlink:title="RevenueRemainingPerformanceObligation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="RevenueRemainingPerformanceObligation" xlink:title="presentation: RevenuePerformanceObligationAbstract to RevenueRemainingPerformanceObligation" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuePerformanceObligationAbstract" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:title="presentation: RevenuePerformanceObligationAbstract to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="RevenuePerformanceObligationAbstract" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems to RevenuePerformanceObligationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:title="presentation: RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:title="presentation: AccountingPoliciesAbstract to RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTable" xlink:label="ConcentrationRiskTable" xlink:title="ConcentrationRiskTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountsReceivableMember" xlink:label="AccountsReceivableMember" xlink:title="AccountsReceivableMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="AccountsReceivableMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to AccountsReceivableMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="presentation: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskByBenchmarkAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="CustomerConcentrationRiskMember" xlink:title="CustomerConcentrationRiskMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTypeDomain" xlink:to="CustomerConcentrationRiskMember" xlink:title="presentation: ConcentrationRiskTypeDomain to CustomerConcentrationRiskMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="presentation: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskByTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MajorCustomersAxis" xlink:label="MajorCustomersAxis" xlink:title="MajorCustomersAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_NameOfMajorCustomerDomain" xlink:label="NameOfMajorCustomerDomain" xlink:title="NameOfMajorCustomerDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ScientificGamesMember" xlink:label="ScientificGamesMember" xlink:title="ScientificGamesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="ScientificGamesMember" xlink:title="presentation: NameOfMajorCustomerDomain to ScientificGamesMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalGameTechnologyPlcMember" xlink:label="InternationalGameTechnologyPlcMember" xlink:title="InternationalGameTechnologyPlcMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="InternationalGameTechnologyPlcMember" xlink:title="presentation: NameOfMajorCustomerDomain to InternationalGameTechnologyPlcMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_NcrCorporationMember" xlink:label="NcrCorporationMember" xlink:title="NcrCorporationMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="NcrCorporationMember" xlink:title="presentation: NameOfMajorCustomerDomain to NcrCorporationMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TheBrightGroupMember" xlink:label="TheBrightGroupMember" xlink:title="TheBrightGroupMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NameOfMajorCustomerDomain" xlink:to="TheBrightGroupMember" xlink:title="presentation: NameOfMajorCustomerDomain to TheBrightGroupMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MajorCustomersAxis" xlink:to="NameOfMajorCustomerDomain" xlink:title="presentation: MajorCustomersAxis to NameOfMajorCustomerDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTable" xlink:to="MajorCustomersAxis" xlink:title="presentation: ConcentrationRiskTable to MajorCustomersAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskLineItems" xlink:label="ConcentrationRiskLineItems" xlink:title="ConcentrationRiskLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="RisksAndUncertaintiesAbstract" xlink:title="RisksAndUncertaintiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RisksAndUncertaintiesAbstract" xlink:to="ConcentrationRiskPercentage1" xlink:title="presentation: RisksAndUncertaintiesAbstract to ConcentrationRiskPercentage1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskLineItems" xlink:to="RisksAndUncertaintiesAbstract" xlink:title="presentation: ConcentrationRiskLineItems to RisksAndUncertaintiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTable" xlink:to="ConcentrationRiskLineItems" xlink:title="presentation: ConcentrationRiskTable to ConcentrationRiskLineItems" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ConcentrationRiskTable" xlink:title="presentation: AccountingPoliciesAbstract to ConcentrationRiskTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityTable" xlink:label="ProductWarrantyLiabilityTable" xlink:title="ProductWarrantyLiabilityTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductWarrantyLiabilityTable" xlink:to="RangeAxis" xlink:title="presentation: ProductWarrantyLiabilityTable to RangeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="BalanceSheetLocationAxis" xlink:title="BalanceSheetLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="BalanceSheetLocationDomain" xlink:title="BalanceSheetLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesMember" xlink:label="OtherLiabilitiesMember" xlink:title="OtherLiabilitiesMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BalanceSheetLocationDomain" xlink:to="OtherLiabilitiesMember" xlink:title="presentation: BalanceSheetLocationDomain to OtherLiabilitiesMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="BalanceSheetLocationAxis" xlink:to="BalanceSheetLocationDomain" xlink:title="presentation: BalanceSheetLocationAxis to BalanceSheetLocationDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductWarrantyLiabilityTable" xlink:to="BalanceSheetLocationAxis" xlink:title="presentation: ProductWarrantyLiabilityTable to BalanceSheetLocationAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProductWarrantyLiabilityLineItems" xlink:label="ProductWarrantyLiabilityLineItems" xlink:title="ProductWarrantyLiabilityLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyDisclosureAbstract" xlink:label="ExtendedProductWarrantyDisclosureAbstract" xlink:title="ExtendedProductWarrantyDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ExtendedProductWarrantyPeriod" xlink:label="ExtendedProductWarrantyPeriod" xlink:title="ExtendedProductWarrantyPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="ExtendedProductWarrantyPeriod" xlink:title="presentation: ExtendedProductWarrantyDisclosureAbstract to ExtendedProductWarrantyPeriod" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInExtendedProductWarrantyAccrualRollForward" xlink:label="MovementInExtendedProductWarrantyAccrualRollForward" xlink:title="MovementInExtendedProductWarrantyAccrualRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="ExtendedProductWarrantyAccrual" xlink:title="ExtendedProductWarrantyAccrual" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInExtendedProductWarrantyAccrualRollForward" xlink:to="ExtendedProductWarrantyAccrual" xlink:title="presentation: MovementInExtendedProductWarrantyAccrualRollForward to ExtendedProductWarrantyAccrual" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:label="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:title="ExtendedProductWarrantyAccrualWarrantiesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInExtendedProductWarrantyAccrualRollForward" xlink:to="ExtendedProductWarrantyAccrualWarrantiesIssued" xlink:title="presentation: MovementInExtendedProductWarrantyAccrualRollForward to ExtendedProductWarrantyAccrualWarrantiesIssued" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualPayments" xlink:label="ExtendedProductWarrantyAccrualPayments" xlink:title="ExtendedProductWarrantyAccrualPayments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInExtendedProductWarrantyAccrualRollForward" xlink:to="ExtendedProductWarrantyAccrualPayments" xlink:title="presentation: MovementInExtendedProductWarrantyAccrualRollForward to ExtendedProductWarrantyAccrualPayments" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="ExtendedProductWarrantyAccrual_2" xlink:title="ExtendedProductWarrantyAccrual" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInExtendedProductWarrantyAccrualRollForward" xlink:to="ExtendedProductWarrantyAccrual_2" xlink:title="presentation: MovementInExtendedProductWarrantyAccrualRollForward to ExtendedProductWarrantyAccrual" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="MovementInExtendedProductWarrantyAccrualRollForward" xlink:title="presentation: ExtendedProductWarrantyDisclosureAbstract to MovementInExtendedProductWarrantyAccrualRollForward" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="ExtendedProductWarrantyAccrualCurrent" xlink:title="ExtendedProductWarrantyAccrualCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="ExtendedProductWarrantyAccrualCurrent" xlink:title="presentation: ExtendedProductWarrantyDisclosureAbstract to ExtendedProductWarrantyAccrualCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ExtendedProductWarrantyAccrualNoncurrent" xlink:label="ExtendedProductWarrantyAccrualNoncurrent" xlink:title="ExtendedProductWarrantyAccrualNoncurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ExtendedProductWarrantyDisclosureAbstract" xlink:to="ExtendedProductWarrantyAccrualNoncurrent" xlink:title="presentation: ExtendedProductWarrantyDisclosureAbstract to ExtendedProductWarrantyAccrualNoncurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductWarrantyLiabilityLineItems" xlink:to="ExtendedProductWarrantyDisclosureAbstract" xlink:title="presentation: ProductWarrantyLiabilityLineItems to ExtendedProductWarrantyDisclosureAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ProductWarrantyLiabilityTable" xlink:to="ProductWarrantyLiabilityLineItems" xlink:title="presentation: ProductWarrantyLiabilityTable to ProductWarrantyLiabilityLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ProductWarrantyLiabilityTable" xlink:title="presentation: AccountingPoliciesAbstract to ProductWarrantyLiabilityTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpenseAbstract" xlink:label="ResearchAndDevelopmentExpenseAbstract" xlink:title="ResearchAndDevelopmentExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="ResearchAndDevelopmentExpense" xlink:title="ResearchAndDevelopmentExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="ResearchAndDevelopmentExpense" xlink:title="presentation: ResearchAndDevelopmentExpenseAbstract to ResearchAndDevelopmentExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareNet" xlink:label="CapitalizedComputerSoftwareNet" xlink:title="CapitalizedComputerSoftwareNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="CapitalizedComputerSoftwareNet" xlink:title="presentation: ResearchAndDevelopmentExpenseAbstract to CapitalizedComputerSoftwareNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CapitalizedComputerSoftwareAmortization1" xlink:label="CapitalizedComputerSoftwareAmortization1" xlink:title="CapitalizedComputerSoftwareAmortization1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ResearchAndDevelopmentExpenseAbstract" xlink:to="CapitalizedComputerSoftwareAmortization1" xlink:title="presentation: ResearchAndDevelopmentExpenseAbstract to CapitalizedComputerSoftwareAmortization1" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="ResearchAndDevelopmentExpenseAbstract" xlink:title="presentation: AccountingPoliciesAbstract to ResearchAndDevelopmentExpenseAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="AccountingPoliciesAbstract" xlink:title="AccountingPoliciesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MarketingAndAdvertisingExpenseAbstract" xlink:label="MarketingAndAdvertisingExpenseAbstract" xlink:title="MarketingAndAdvertisingExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdvertisingExpense" xlink:label="AdvertisingExpense" xlink:title="AdvertisingExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MarketingAndAdvertisingExpenseAbstract" xlink:to="AdvertisingExpense" xlink:title="presentation: MarketingAndAdvertisingExpenseAbstract to AdvertisingExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingPoliciesAbstract" xlink:to="MarketingAndAdvertisingExpenseAbstract" xlink:title="presentation: AccountingPoliciesAbstract to MarketingAndAdvertisingExpenseAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/InventoriesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="InventoryDisclosureAbstract" xlink:title="InventoryDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:label="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="InventoryRawMaterialsAndSuppliesNetOfReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryRawMaterialsAndSuppliesNetOfReserves" xlink:title="presentation: InventoryDisclosureAbstract to InventoryRawMaterialsAndSuppliesNetOfReserves" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="InventoryWorkInProcessNetOfReserves" xlink:title="InventoryWorkInProcessNetOfReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryWorkInProcessNetOfReserves" xlink:title="presentation: InventoryDisclosureAbstract to InventoryWorkInProcessNetOfReserves" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="InventoryFinishedGoodsNetOfReserves" xlink:title="InventoryFinishedGoodsNetOfReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryFinishedGoodsNetOfReserves" xlink:title="presentation: InventoryDisclosureAbstract to InventoryFinishedGoodsNetOfReserves" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="InventoryDisclosureAbstract" xlink:to="InventoryNet" xlink:title="presentation: InventoryDisclosureAbstract to InventoryNet" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/FixedAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="PropertyPlantAndEquipmentAbstract" xlink:title="PropertyPlantAndEquipmentAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:label="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="ScheduleOfPropertyPlantAndEquipmentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="PropertyPlantAndEquipmentByTypeAxis" xlink:title="PropertyPlantAndEquipmentByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="PropertyPlantAndEquipmentTypeDomain" xlink:title="PropertyPlantAndEquipmentTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="MachineryAndEquipmentMember" xlink:title="MachineryAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="MachineryAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to MachineryAndEquipmentMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FurnitureAndOfficeEquipmentMember" xlink:label="FurnitureAndOfficeEquipmentMember" xlink:title="FurnitureAndOfficeEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FurnitureAndOfficeEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FurnitureAndOfficeEquipmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ComputerSoftwareAndEquipmentMember" xlink:label="ComputerSoftwareAndEquipmentMember" xlink:title="ComputerSoftwareAndEquipmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ComputerSoftwareAndEquipmentMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ComputerSoftwareAndEquipmentMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="LeaseholdImprovementsMember" xlink:title="LeaseholdImprovementsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="LeaseholdImprovementsMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to LeaseholdImprovementsMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FixedAssetsExcludingConstructionInProcessMember" xlink:label="FixedAssetsExcludingConstructionInProcessMember" xlink:title="FixedAssetsExcludingConstructionInProcessMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="FixedAssetsExcludingConstructionInProcessMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to FixedAssetsExcludingConstructionInProcessMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConstructionInProgressMember" xlink:label="ConstructionInProgressMember" xlink:title="ConstructionInProgressMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentTypeDomain" xlink:to="ConstructionInProgressMember" xlink:title="presentation: PropertyPlantAndEquipmentTypeDomain to ConstructionInProgressMember" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentByTypeAxis" xlink:to="PropertyPlantAndEquipmentTypeDomain" xlink:title="presentation: PropertyPlantAndEquipmentByTypeAxis to PropertyPlantAndEquipmentTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentByTypeAxis" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentByTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentLineItems" xlink:label="PropertyPlantAndEquipmentLineItems" xlink:title="PropertyPlantAndEquipmentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract" xlink:label="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="PropertyPlantAndEquipmentNetByTypeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="PropertyPlantAndEquipmentGross" xlink:title="PropertyPlantAndEquipmentGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="PropertyPlantAndEquipmentGross" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to PropertyPlantAndEquipmentGross" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: PropertyPlantAndEquipmentNetByTypeAbstract to PropertyPlantAndEquipmentNet" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentLineItems" xlink:to="PropertyPlantAndEquipmentNetByTypeAbstract" xlink:title="presentation: PropertyPlantAndEquipmentLineItems to PropertyPlantAndEquipmentNetByTypeAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="PropertyPlantAndEquipmentLineItems" xlink:title="presentation: ScheduleOfPropertyPlantAndEquipmentTable to PropertyPlantAndEquipmentLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PropertyPlantAndEquipmentAbstract" xlink:to="ScheduleOfPropertyPlantAndEquipmentTable" xlink:title="presentation: PropertyPlantAndEquipmentAbstract to ScheduleOfPropertyPlantAndEquipmentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IntangibleAssetsNetDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:title="GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="ScheduleOfFiniteLivedIntangibleAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="FiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="TechnologyBasedIntangibleAssetsMember" xlink:title="TechnologyBasedIntangibleAssetsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TechnologyBasedIntangibleAssetsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to TechnologyBasedIntangibleAssetsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="CustomerRelationshipsMember" xlink:title="CustomerRelationshipsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="CustomerRelationshipsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to CustomerRelationshipsMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TrademarksMember" xlink:label="TrademarksMember" xlink:title="TrademarksMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="TrademarksMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to TrademarksMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="NoncompeteAgreementsMember" xlink:title="NoncompeteAgreementsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="NoncompeteAgreementsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to NoncompeteAgreementsMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PatentsMember" xlink:label="PatentsMember" xlink:title="PatentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="PatentsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to PatentsMember" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="OtherIntangibleAssetsMember" xlink:title="OtherIntangibleAssetsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="OtherIntangibleAssetsMember" xlink:title="presentation: FiniteLivedIntangibleAssetsMajorClassNameDomain to OtherIntangibleAssetsMember" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:title="presentation: FiniteLivedIntangibleAssetsByMajorClassAxis to FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsByMajorClassAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="FiniteLivedIntangibleAssetsLineItems" xlink:title="FiniteLivedIntangibleAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsNetAbstract" xlink:label="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="FiniteLivedIntangibleAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="FiniteLivedIntangibleAssetsGross" xlink:title="FiniteLivedIntangibleAssetsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsGross" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsGross" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsNetAbstract" xlink:to="FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:title="presentation: FiniteLivedIntangibleAssetsNetAbstract to FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsNetAbstract" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="AmortizationOfIntangibleAssets" xlink:title="AmortizationOfIntangibleAssets" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="AmortizationOfIntangibleAssets" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to AmortizationOfIntangibleAssets" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:title="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:title="presentation: FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:title="presentation: FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:label="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:title="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" xlink:title="presentation: FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract to FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:title="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:title="presentation: FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract to FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="FiniteLivedIntangibleAssetsLineItems" xlink:to="FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:title="presentation: FiniteLivedIntangibleAssetsLineItems to FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="FiniteLivedIntangibleAssetsLineItems" xlink:title="presentation: ScheduleOfFiniteLivedIntangibleAssetsTable to FiniteLivedIntangibleAssetsLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:title="presentation: GoodwillAndIntangibleAssetsDisclosureAbstract to ScheduleOfFiniteLivedIntangibleAssetsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/AccruedLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PayablesAndAccrualsAbstract" xlink:label="PayablesAndAccrualsAbstract" xlink:title="PayablesAndAccrualsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrent" xlink:label="EmployeeRelatedLiabilitiesCurrent" xlink:title="EmployeeRelatedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="EmployeeRelatedLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to EmployeeRelatedLiabilitiesCurrent" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxesPayableCurrent" xlink:label="TaxesPayableCurrent" xlink:title="TaxesPayableCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="TaxesPayableCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to TaxesPayableCurrent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="AccruedProfessionalFeesCurrent" xlink:title="AccruedProfessionalFeesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccruedProfessionalFeesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to AccruedProfessionalFeesCurrent" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="OtherLiabilitiesCurrent" xlink:title="OtherLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="OtherLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to OtherLiabilitiesCurrent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="AccruedLiabilitiesCurrent" xlink:title="AccruedLiabilitiesCurrent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PayablesAndAccrualsAbstract" xlink:to="AccruedLiabilitiesCurrent" xlink:title="presentation: PayablesAndAccrualsAbstract to AccruedLiabilitiesCurrent" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/RetirementSavingsPlanDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:label="CompensationAndRetirementDisclosureAbstract" xlink:title="CompensationAndRetirementDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:label="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="DefinedContributionPlanEmployerMatchingContributionPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanEmployerMatchingContributionPercent" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanEmployerMatchingContributionPercent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="DefinedContributionPlanCostRecognized" xlink:title="DefinedContributionPlanCostRecognized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CompensationAndRetirementDisclosureAbstract" xlink:to="DefinedContributionPlanCostRecognized" xlink:title="presentation: CompensationAndRetirementDisclosureAbstract to DefinedContributionPlanCostRecognized" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/BorrowingsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="DebtDisclosureAbstract" xlink:title="DebtDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentTable" xlink:label="DebtInstrumentTable" xlink:title="DebtInstrumentTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentAxis" xlink:label="DebtInstrumentAxis" xlink:title="DebtInstrumentAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="DebtInstrumentNameDomain" xlink:title="DebtInstrumentNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:label="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="RevolvingCreditFacilitySienaLendingGroupLlcMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentNameDomain" xlink:to="RevolvingCreditFacilitySienaLendingGroupLlcMember" xlink:title="presentation: DebtInstrumentNameDomain to RevolvingCreditFacilitySienaLendingGroupLlcMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PaycheckProtectionProgramLoanMember" xlink:label="PaycheckProtectionProgramLoanMember" xlink:title="PaycheckProtectionProgramLoanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentNameDomain" xlink:to="PaycheckProtectionProgramLoanMember" xlink:title="presentation: DebtInstrumentNameDomain to PaycheckProtectionProgramLoanMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentAxis" xlink:to="DebtInstrumentNameDomain" xlink:title="presentation: DebtInstrumentAxis to DebtInstrumentNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentAxis" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateAxis" xlink:label="VariableRateAxis" xlink:title="VariableRateAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_VariableRateDomain" xlink:label="VariableRateDomain" xlink:title="VariableRateDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PrimeRateMember" xlink:label="PrimeRateMember" xlink:title="PrimeRateMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateDomain" xlink:to="PrimeRateMember" xlink:title="presentation: VariableRateDomain to PrimeRateMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_FederalFundsEffectiveSwapRateMember" xlink:label="FederalFundsEffectiveSwapRateMember" xlink:title="FederalFundsEffectiveSwapRateMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateDomain" xlink:to="FederalFundsEffectiveSwapRateMember" xlink:title="presentation: VariableRateDomain to FederalFundsEffectiveSwapRateMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="VariableRateAxis" xlink:to="VariableRateDomain" xlink:title="presentation: VariableRateAxis to VariableRateDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="VariableRateAxis" xlink:title="presentation: DebtInstrumentTable to VariableRateAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="RangeAxis" xlink:title="presentation: DebtInstrumentTable to RangeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="DebtInstrumentLineItems" xlink:title="DebtInstrumentLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityAbstract" xlink:label="LineOfCreditFacilityAbstract" xlink:title="LineOfCreditFacilityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="LineOfCreditFacilityMaximumBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityMaximumBorrowingCapacity" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityMaximumBorrowingCapacity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="DebtInstrumentBasisSpreadOnVariableRate1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentBasisSpreadOnVariableRate1" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentBasisSpreadOnVariableRate1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentInterestRateStatedPercentage" xlink:label="DebtInstrumentInterestRateStatedPercentage" xlink:title="DebtInstrumentInterestRateStatedPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentInterestRateStatedPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentInterestRateStatedPercentage" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFinanceCostsGross" xlink:label="DeferredFinanceCostsGross" xlink:title="DeferredFinanceCostsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DeferredFinanceCostsGross" xlink:title="presentation: LineOfCreditFacilityAbstract to DeferredFinanceCostsGross" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:label="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleAccountsReceivable" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleAccountsReceivable" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventory" xlink:label="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="DebtInstrumentFinancialCovenantEligibleInventory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventory" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventory" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:label="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SecuredDebt" xlink:label="SecuredDebt" xlink:title="SecuredDebt" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="SecuredDebt" xlink:title="presentation: LineOfCreditFacilityAbstract to SecuredDebt" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="LineOfCreditFacilityRemainingBorrowingCapacity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="LineOfCreditFacilityRemainingBorrowingCapacity" xlink:title="presentation: LineOfCreditFacilityAbstract to LineOfCreditFacilityRemainingBorrowingCapacity" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:label="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:title="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:label="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:title="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount" order="13.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:label="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:title="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="DebtInstrumentFaceAmount" xlink:title="DebtInstrumentFaceAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentFaceAmount" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentFaceAmount" order="15.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DebtInstrumentDecreaseForgiveness" xlink:label="DebtInstrumentDecreaseForgiveness" xlink:title="DebtInstrumentDecreaseForgiveness" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LineOfCreditFacilityAbstract" xlink:to="DebtInstrumentDecreaseForgiveness" xlink:title="presentation: LineOfCreditFacilityAbstract to DebtInstrumentDecreaseForgiveness" order="16.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentLineItems" xlink:to="LineOfCreditFacilityAbstract" xlink:title="presentation: DebtInstrumentLineItems to LineOfCreditFacilityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtInstrumentTable" xlink:to="DebtInstrumentLineItems" xlink:title="presentation: DebtInstrumentTable to DebtInstrumentLineItems" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DebtDisclosureAbstract" xlink:to="DebtInstrumentTable" xlink:title="presentation: DebtDisclosureAbstract to DebtInstrumentTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeAxis" xlink:label="RangeAxis" xlink:title="RangeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RangeMember" xlink:label="RangeMember" xlink:title="RangeMember" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MinimumMember" xlink:label="MinimumMember" xlink:title="MinimumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MinimumMember" xlink:title="presentation: RangeMember to MinimumMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_MaximumMember" xlink:label="MaximumMember" xlink:title="MaximumMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeMember" xlink:to="MaximumMember" xlink:title="presentation: RangeMember to MaximumMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RangeAxis" xlink:to="RangeMember" xlink:title="presentation: RangeAxis to RangeMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="RangeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to RangeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:label="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" xlink:title="presentation: ShareBasedArrangementsToObtainGoodsAndServicesAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedArrangementsToObtainGoodsAndServicesAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedArrangementsToObtainGoodsAndServicesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="IncomeStatementLocationAxis" xlink:title="IncomeStatementLocationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="IncomeStatementLocationDomain" xlink:title="IncomeStatementLocationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="GeneralAndAdministrativeExpenseMember" xlink:title="GeneralAndAdministrativeExpenseMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementLocationDomain" xlink:to="GeneralAndAdministrativeExpenseMember" xlink:title="presentation: IncomeStatementLocationDomain to GeneralAndAdministrativeExpenseMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementLocationAxis" xlink:to="IncomeStatementLocationDomain" xlink:title="presentation: IncomeStatementLocationAxis to IncomeStatementLocationDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="IncomeStatementLocationAxis" xlink:title="presentation: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to IncomeStatementLocationAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationAbstract" xlink:label="ShareBasedCompensationAbstract" xlink:title="ShareBasedCompensationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="AllocatedShareBasedCompensationExpense" xlink:title="AllocatedShareBasedCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="AllocatedShareBasedCompensationExpense" xlink:title="presentation: ShareBasedCompensationAbstract to AllocatedShareBasedCompensationExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationAbstract" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:title="presentation: ShareBasedCompensationAbstract to EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="ShareBasedCompensationAbstract" xlink:title="presentation: EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems to ShareBasedCompensationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:title="presentation: ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable to EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameAxis" xlink:label="PlanNameAxis" xlink:title="PlanNameAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PlanNameDomain" xlink:label="PlanNameDomain" xlink:title="PlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:label="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameDomain" xlink:to="EquityIncentivePlan2005AndEquityIncentivePlan2014Member" xlink:title="presentation: PlanNameDomain to EquityIncentivePlan2005AndEquityIncentivePlan2014Member" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="PlanNameAxis" xlink:to="PlanNameDomain" xlink:title="presentation: PlanNameAxis to PlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="PlanNameAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to PlanNameAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AwardTypeAxis" xlink:label="AwardTypeAxis" xlink:title="AwardTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="EmployeeStockOptionMember" xlink:title="EmployeeStockOptionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="EmployeeStockOptionMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to EmployeeStockOptionMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="RestrictedStockUnitsRSUMember" xlink:title="RestrictedStockUnitsRSUMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="RestrictedStockUnitsRSUMember" xlink:title="presentation: ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain to RestrictedStockUnitsRSUMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AwardTypeAxis" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:title="presentation: AwardTypeAxis to ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="AwardTypeAxis" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to AwardTypeAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to StockIssuedDuringPeriodSharesStockOptionsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures" order="3.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_2" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsAggregateIntrinsicValueAbstract" xlink:label="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="EquityAwardsAggregateIntrinsicValueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsAggregateIntrinsicValueAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" xlink:title="presentation: EquityAwardsAggregateIntrinsicValueAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsAggregateIntrinsicValueAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsAggregateIntrinsicValueAbstract" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:label="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="EquityAwardsWeightedAverageRemainingContractualTermAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" xlink:title="presentation: EquityAwardsWeightedAverageRemainingContractualTermAbstract to ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EquityAwardsWeightedAverageRemainingContractualTermAbstract" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EquityAwardsWeightedAverageRemainingContractualTermAbstract" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:label="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="ProceedsFromStockOptionsExercised" xlink:title="ProceedsFromStockOptionsExercised" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ProceedsFromStockOptionsExercised" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to ProceedsFromStockOptionsExercised" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:label="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:title="presentation: ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems to EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:title="presentation: ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable to ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:title="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:label="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:title="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:label="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:title="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationShareBasedPaymentsMember" xlink:label="DeferredCompensationShareBasedPaymentsMember" xlink:title="DeferredCompensationShareBasedPaymentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:to="DeferredCompensationShareBasedPaymentsMember" xlink:title="presentation: EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain to DeferredCompensationShareBasedPaymentsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:to="EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" xlink:title="presentation: DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis to EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:to="DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" xlink:title="presentation: ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable to DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:label="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:title="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementsAbstract" xlink:label="DeferredCompensationArrangementsAbstract" xlink:title="DeferredCompensationArrangementsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued" xlink:label="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:title="DeferredCompensationArrangementWithIndividualSharesIssued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="DeferredCompensationArrangementWithIndividualSharesIssued" xlink:title="presentation: DeferredCompensationArrangementsAbstract to DeferredCompensationArrangementWithIndividualSharesIssued" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:label="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:title="DeferredCompensationArrangementWithIndividualCompensationExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="DeferredCompensationArrangementWithIndividualCompensationExpense" xlink:title="presentation: DeferredCompensationArrangementsAbstract to DeferredCompensationArrangementWithIndividualCompensationExpense" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:title="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:title="presentation: DeferredCompensationArrangementsAbstract to DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice" xlink:label="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:title="DeferredCompensationArrangementWithIndividualExercisePrice" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementsAbstract" xlink:to="DeferredCompensationArrangementWithIndividualExercisePrice" xlink:title="presentation: DeferredCompensationArrangementsAbstract to DeferredCompensationArrangementWithIndividualExercisePrice" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:to="DeferredCompensationArrangementsAbstract" xlink:title="presentation: DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems to DeferredCompensationArrangementsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:to="DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" xlink:title="presentation: ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable to DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" xlink:title="presentation: DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract to ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="CurrentFederalTaxExpenseBenefit" xlink:title="CurrentFederalTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentFederalTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentFederalTaxExpenseBenefit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="CurrentStateAndLocalTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentStateAndLocalTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentStateAndLocalTaxExpenseBenefit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="CurrentForeignTaxExpenseBenefit" xlink:title="CurrentForeignTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentForeignTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentForeignTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="CurrentIncomeTaxExpenseBenefit" xlink:title="CurrentIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentIncomeTaxExpenseBenefit" xlink:title="presentation: CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentIncomeTaxExpenseBenefit" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:label="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="DeferredFederalIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredFederalIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredFederalIncomeTaxExpenseBenefit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="DeferredStateAndLocalIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredStateAndLocalIncomeTaxExpenseBenefit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="DeferredForeignIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredForeignIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredForeignIncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="presentation: DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredIncomeTaxExpenseBenefit" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsAbstract to IncomeTaxExpenseBenefit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxExpenseBenefitContinuingOperationsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperations" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateContinuingOperations" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsTable" xlink:label="OperatingLossCarryforwardsTable" xlink:title="OperatingLossCarryforwardsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="TaxCreditCarryforwardAxis" xlink:title="TaxCreditCarryforwardAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="TaxCreditCarryforwardNameDomain" xlink:title="TaxCreditCarryforwardNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ResearchMember" xlink:label="ResearchMember" xlink:title="ResearchMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TaxCreditCarryforwardNameDomain" xlink:to="ResearchMember" xlink:title="presentation: TaxCreditCarryforwardNameDomain to ResearchMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="TaxCreditCarryforwardAxis" xlink:to="TaxCreditCarryforwardNameDomain" xlink:title="presentation: TaxCreditCarryforwardAxis to TaxCreditCarryforwardNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLossCarryforwardsTable" xlink:to="TaxCreditCarryforwardAxis" xlink:title="presentation: OperatingLossCarryforwardsTable to TaxCreditCarryforwardAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="IncomeTaxAuthorityAxis" xlink:title="IncomeTaxAuthorityAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="IncomeTaxAuthorityDomain" xlink:title="IncomeTaxAuthorityDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DomesticCountryMember" xlink:label="DomesticCountryMember" xlink:title="DomesticCountryMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityDomain" xlink:to="DomesticCountryMember" xlink:title="presentation: IncomeTaxAuthorityDomain to DomesticCountryMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="StateAndLocalJurisdictionMember" xlink:title="StateAndLocalJurisdictionMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityDomain" xlink:to="StateAndLocalJurisdictionMember" xlink:title="presentation: IncomeTaxAuthorityDomain to StateAndLocalJurisdictionMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxAuthorityAxis" xlink:to="IncomeTaxAuthorityDomain" xlink:title="presentation: IncomeTaxAuthorityAxis to IncomeTaxAuthorityDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLossCarryforwardsTable" xlink:to="IncomeTaxAuthorityAxis" xlink:title="presentation: OperatingLossCarryforwardsTable to IncomeTaxAuthorityAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLossCarryforwardsLineItems" xlink:label="OperatingLossCarryforwardsLineItems" xlink:title="OperatingLossCarryforwardsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:label="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsNotSubjectToExpiration" xlink:label="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="OperatingLossCarryforwardsNotSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="OperatingLossCarryforwardsNotSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to OperatingLossCarryforwardsNotSubjectToExpiration" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_OperatingLossCarryforwardsSubjectToExpiration" xlink:label="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="OperatingLossCarryforwardsSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="OperatingLossCarryforwardsSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to OperatingLossCarryforwardsSubjectToExpiration" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardAmountSubjectToExpiration" xlink:label="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="TaxCreditCarryforwardAmountSubjectToExpiration" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="TaxCreditCarryforwardAmountSubjectToExpiration" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to TaxCreditCarryforwardAmountSubjectToExpiration" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_TaxCreditCarryforwardExpirationPeriod" xlink:label="TaxCreditCarryforwardExpirationPeriod" xlink:title="TaxCreditCarryforwardExpirationPeriod" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="TaxCreditCarryforwardExpirationPeriod" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to TaxCreditCarryforwardExpirationPeriod" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:title="presentation: IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLossCarryforwardsLineItems" xlink:to="IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" xlink:title="presentation: OperatingLossCarryforwardsLineItems to IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLossCarryforwardsTable" xlink:to="OperatingLossCarryforwardsLineItems" xlink:title="presentation: OperatingLossCarryforwardsTable to OperatingLossCarryforwardsLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="OperatingLossCarryforwardsTable" xlink:title="presentation: IncomeTaxDisclosureAbstract to OperatingLossCarryforwardsTable" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:label="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNetAbstract" xlink:label="DeferredTaxAssetsNetAbstract" xlink:title="DeferredTaxAssetsNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsDomestic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsForeign" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsForeign" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:label="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:label="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="DeferredTaxAssetsInProcessResearchAndDevelopment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsInProcessResearchAndDevelopment" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsInProcessResearchAndDevelopment" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="DeferredTaxAssetsInventory" xlink:title="DeferredTaxAssetsInventory" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsInventory" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsInventory" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsDeferredIncome" xlink:label="DeferredTaxAssetsDeferredIncome" xlink:title="DeferredTaxAssetsDeferredIncome" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsDeferredIncome" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsDeferredIncome" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:label="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:label="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="DeferredTaxAssetsTaxCreditCarryforwardsResearch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsTaxCreditCarryforwardsResearch" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsTaxCreditCarryforwardsResearch" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="DeferredTaxAssetsOther" xlink:title="DeferredTaxAssetsOther" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsOther" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsOther" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="DeferredTaxAssetsGross" xlink:title="DeferredTaxAssetsGross" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsGross" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsGross" order="12.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="DeferredTaxAssetsValuationAllowance" xlink:title="DeferredTaxAssetsValuationAllowance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsValuationAllowance" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsValuationAllowance" order="13.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="DeferredTaxAssetsNet" xlink:title="DeferredTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxAssetsNetAbstract" xlink:to="DeferredTaxAssetsNet" xlink:title="presentation: DeferredTaxAssetsNetAbstract to DeferredTaxAssetsNet" order="14.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxAssetsNetAbstract" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxAssetsNetAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesNetAbstract" xlink:label="DeferredTaxLiabilitiesNetAbstract" xlink:title="DeferredTaxLiabilitiesNetAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="DeferredTaxLiabilitiesPropertyPlantAndEquipment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilitiesPropertyPlantAndEquipment" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilitiesOther" xlink:label="DeferredTaxLiabilitiesOther" xlink:title="DeferredTaxLiabilitiesOther" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilitiesOther" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilitiesOther" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="DeferredTaxLiabilities" xlink:title="DeferredTaxLiabilities" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="DeferredTaxLiabilitiesNetAbstract" xlink:to="DeferredTaxLiabilities" xlink:title="presentation: DeferredTaxLiabilitiesNetAbstract to DeferredTaxLiabilities" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxLiabilitiesNetAbstract" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxLiabilitiesNetAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:label="DeferredTaxAssetsLiabilitiesNet" xlink:title="DeferredTaxAssetsLiabilitiesNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:to="DeferredTaxAssetsLiabilitiesNet" xlink:title="presentation: ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract to DeferredTaxAssetsLiabilitiesNet" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:label="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="ValuationAndQualifyingAccountsDisclosureTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="ValuationAllowancesAndReservesTypeAxis" xlink:title="ValuationAllowancesAndReservesTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="ValuationAllowancesAndReservesDomain" xlink:title="ValuationAllowancesAndReservesDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember" xlink:label="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:title="ValuationAllowanceOperatingLossCarryforwardsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAllowancesAndReservesDomain" xlink:to="ValuationAllowanceOperatingLossCarryforwardsMember" xlink:title="presentation: ValuationAllowancesAndReservesDomain to ValuationAllowanceOperatingLossCarryforwardsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAllowancesAndReservesTypeAxis" xlink:to="ValuationAllowancesAndReservesDomain" xlink:title="presentation: ValuationAllowancesAndReservesTypeAxis to ValuationAllowancesAndReservesDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAllowancesAndReservesTypeAxis" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureTable to ValuationAllowancesAndReservesTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:label="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="ValuationAndQualifyingAccountsDisclosureLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:label="MovementInValuationAllowancesAndReservesRollForward" xlink:title="MovementInValuationAllowancesAndReservesRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesBalance" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesBalance" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="ValuationAllowancesAndReservesDeductions" xlink:title="ValuationAllowancesAndReservesDeductions" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesDeductions" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesDeductions" order="1.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="ValuationAllowancesAndReservesChargedToCostAndExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesChargedToCostAndExpense" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="ValuationAllowancesAndReservesBalance_2" xlink:title="ValuationAllowancesAndReservesBalance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="MovementInValuationAllowancesAndReservesRollForward" xlink:to="ValuationAllowancesAndReservesBalance_2" xlink:title="presentation: MovementInValuationAllowancesAndReservesRollForward to ValuationAllowancesAndReservesBalance" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="MovementInValuationAllowancesAndReservesRollForward" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureLineItems to MovementInValuationAllowancesAndReservesRollForward" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ValuationAndQualifyingAccountsDisclosureTable" xlink:to="ValuationAndQualifyingAccountsDisclosureLineItems" xlink:title="presentation: ValuationAndQualifyingAccountsDisclosureTable to ValuationAndQualifyingAccountsDisclosureLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ValuationAndQualifyingAccountsDisclosureTable" xlink:title="presentation: IncomeTaxDisclosureAbstract to ValuationAndQualifyingAccountsDisclosureTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:label="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:label="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:title="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:label="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationTaxCreditsResearch" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:label="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:title="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:label="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="EffectiveIncomeTaxRateReconciliationTaxContingencies" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationTaxContingencies" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationTaxContingencies" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" order="9.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="EffectiveIncomeTaxRateReconciliationOtherAdjustments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateReconciliationOtherAdjustments" order="10.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="EffectiveIncomeTaxRateContinuingOperations" xlink:title="EffectiveIncomeTaxRateContinuingOperations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperations" xlink:title="presentation: EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract to EffectiveIncomeTaxRateContinuingOperations" order="11.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" xlink:title="presentation: IncomeTaxDisclosureAbstract to EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="IncomeTaxDisclosureAbstract" xlink:title="IncomeTaxDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:label="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:title="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" xlink:title="presentation: IncomeTaxDisclosureAbstract to UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:label="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits" xlink:title="UnrecognizedTaxBenefits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefits" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefits" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:label="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefitsPeriodIncreaseDecrease" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefitsPeriodIncreaseDecrease" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:label="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="UnrecognizedTaxBenefits_2" xlink:title="UnrecognizedTaxBenefits" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="UnrecognizedTaxBenefits_2" xlink:title="presentation: ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward to UnrecognizedTaxBenefits" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:title="presentation: IncomeTaxDisclosureAbstract to ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:label="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:title="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" xlink:title="presentation: IncomeTaxDisclosureAbstract to DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:label="IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:title="IncomeTaxExaminationPenaltiesAndInterestAccrued" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeTaxDisclosureAbstract" xlink:to="IncomeTaxExaminationPenaltiesAndInterestAccrued" xlink:title="presentation: IncomeTaxDisclosureAbstract to IncomeTaxExaminationPenaltiesAndInterestAccrued" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/EarningsPerShareDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: EarningsPerShareAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:title="presentation: EarningsPerShareAbstract to WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicAbstract" xlink:label="EarningsPerShareBasicAbstract" xlink:title="EarningsPerShareBasicAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareBasicAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareBasicAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasicAbstract" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasicAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="AntidilutiveSecuritiesNameDomain" xlink:title="AntidilutiveSecuritiesNameDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockCompensationPlanMember" xlink:label="StockCompensationPlanMember" xlink:title="StockCompensationPlanMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesNameDomain" xlink:to="StockCompensationPlanMember" xlink:title="presentation: AntidilutiveSecuritiesNameDomain to StockCompensationPlanMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="AntidilutiveSecuritiesNameDomain" xlink:title="presentation: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis to AntidilutiveSecuritiesNameDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:title="presentation: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareReconciliationAbstract" xlink:label="EarningsPerShareReconciliationAbstract" xlink:title="EarningsPerShareReconciliationAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareReconciliationAbstract" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:title="presentation: EarningsPerShareReconciliationAbstract to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="EarningsPerShareReconciliationAbstract" xlink:title="presentation: AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems to EarningsPerShareReconciliationAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:title="presentation: ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable to AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:title="presentation: EarningsPerShareAbstract to ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/StockRepurchaseProgramDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityAbstract" xlink:label="EquityAbstract" xlink:title="EquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="StockRepurchasedDuringPeriodShares" xlink:title="StockRepurchasedDuringPeriodShares" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="StockRepurchasedDuringPeriodShares" xlink:title="presentation: EquityAbstract to StockRepurchasedDuringPeriodShares" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="StockRepurchasedDuringPeriodValue" xlink:title="StockRepurchasedDuringPeriodValue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="StockRepurchasedDuringPeriodValue" xlink:title="presentation: EquityAbstract to StockRepurchasedDuringPeriodValue" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="TreasuryStockAcquiredAverageCostPerShare" xlink:title="TreasuryStockAcquiredAverageCostPerShare" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityAbstract" xlink:to="TreasuryStockAcquiredAverageCostPerShare" xlink:title="presentation: EquityAbstract to TreasuryStockAcquiredAverageCostPerShare" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/GeographicAreaInformationDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentReportingAbstract" xlink:label="SegmentReportingAbstract" xlink:title="SegmentReportingAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:label="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsAxis" xlink:label="ConsolidationItemsAxis" xlink:title="ConsolidationItemsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ConsolidationItemsDomain" xlink:label="ConsolidationItemsDomain" xlink:title="ConsolidationItemsDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ReportableGeographicalComponentsMember" xlink:label="ReportableGeographicalComponentsMember" xlink:title="ReportableGeographicalComponentsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsDomain" xlink:to="ReportableGeographicalComponentsMember" xlink:title="presentation: ConsolidationItemsDomain to ReportableGeographicalComponentsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConsolidationItemsAxis" xlink:to="ConsolidationItemsDomain" xlink:title="presentation: ConsolidationItemsAxis to ConsolidationItemsDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConsolidationItemsAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConsolidationItemsAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="ConcentrationRiskByBenchmarkAxis" xlink:title="ConcentrationRiskByBenchmarkAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="ConcentrationRiskBenchmarkDomain" xlink:title="ConcentrationRiskBenchmarkDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SalesRevenueNetMember" xlink:label="SalesRevenueNetMember" xlink:title="SalesRevenueNetMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskBenchmarkDomain" xlink:to="SalesRevenueNetMember" xlink:title="presentation: ConcentrationRiskBenchmarkDomain to SalesRevenueNetMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByBenchmarkAxis" xlink:to="ConcentrationRiskBenchmarkDomain" xlink:title="presentation: ConcentrationRiskByBenchmarkAxis to ConcentrationRiskBenchmarkDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByBenchmarkAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByBenchmarkAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="ConcentrationRiskByTypeAxis" xlink:title="ConcentrationRiskByTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="ConcentrationRiskTypeDomain" xlink:title="ConcentrationRiskTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GeographicConcentrationRiskMember" xlink:label="GeographicConcentrationRiskMember" xlink:title="GeographicConcentrationRiskMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskTypeDomain" xlink:to="GeographicConcentrationRiskMember" xlink:title="presentation: ConcentrationRiskTypeDomain to GeographicConcentrationRiskMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ConcentrationRiskByTypeAxis" xlink:to="ConcentrationRiskTypeDomain" xlink:title="presentation: ConcentrationRiskByTypeAxis to ConcentrationRiskTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="ConcentrationRiskByTypeAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to ConcentrationRiskByTypeAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_StatementGeographicalAxis" xlink:label="StatementGeographicalAxis" xlink:title="StatementGeographicalAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_SegmentGeographicalDomain" xlink:label="SegmentGeographicalDomain" xlink:title="SegmentGeographicalDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_US" xlink:label="US" xlink:title="US" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="US" xlink:title="presentation: SegmentGeographicalDomain to US" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_InternationalMember" xlink:label="InternationalMember" xlink:title="InternationalMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="InternationalMember" xlink:title="presentation: SegmentGeographicalDomain to InternationalMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_EuropeMember" xlink:label="EuropeMember" xlink:title="EuropeMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="EuropeMember" xlink:title="presentation: SegmentGeographicalDomain to EuropeMember" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_PacificRimMember" xlink:label="PacificRimMember" xlink:title="PacificRimMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="PacificRimMember" xlink:title="presentation: SegmentGeographicalDomain to PacificRimMember" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2022/country-2022.xsd#country_CA" xlink:label="CA" xlink:title="CA" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentGeographicalDomain" xlink:to="CA" xlink:title="presentation: SegmentGeographicalDomain to CA" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementGeographicalAxis" xlink:to="SegmentGeographicalDomain" xlink:title="presentation: StatementGeographicalAxis to SegmentGeographicalDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="StatementGeographicalAxis" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to StatementGeographicalAxis" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:label="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SegmentsGeographicalAreasAbstract" xlink:label="SegmentsGeographicalAreasAbstract" xlink:title="SegmentsGeographicalAreasAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: SegmentsGeographicalAreasAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="PropertyPlantAndEquipmentNet" xlink:title="PropertyPlantAndEquipmentNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="PropertyPlantAndEquipmentNet" xlink:title="presentation: SegmentsGeographicalAreasAbstract to PropertyPlantAndEquipmentNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="ConcentrationRiskPercentage1" xlink:title="ConcentrationRiskPercentage1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentsGeographicalAreasAbstract" xlink:to="ConcentrationRiskPercentage1" xlink:title="presentation: SegmentsGeographicalAreasAbstract to ConcentrationRiskPercentage1" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="SegmentsGeographicalAreasAbstract" xlink:title="presentation: RevenuesFromExternalCustomersAndLongLivedAssetsLineItems to SegmentsGeographicalAreasAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:title="presentation: ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable to RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SegmentReportingAbstract" xlink:to="ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:title="presentation: SegmentReportingAbstract to ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LeasesAbstract" xlink:label="LeasesAbstract" xlink:title="LeasesAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseExpense" xlink:label="OperatingLeaseExpense" xlink:title="OperatingLeaseExpense" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="OperatingLeaseExpense" xlink:title="presentation: LeasesAbstract to OperatingLeaseExpense" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CashFlowOperatingActivitiesLesseeAbstract" xlink:label="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="CashFlowOperatingActivitiesLesseeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeasePayments" xlink:label="OperatingLeasePayments" xlink:title="OperatingLeasePayments" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="CashFlowOperatingActivitiesLesseeAbstract" xlink:to="OperatingLeasePayments" xlink:title="presentation: CashFlowOperatingActivitiesLesseeAbstract to OperatingLeasePayments" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="CashFlowOperatingActivitiesLesseeAbstract" xlink:title="presentation: LeasesAbstract to CashFlowOperatingActivitiesLesseeAbstract" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseDescriptionAbstract" xlink:label="LesseeOperatingLeaseDescriptionAbstract" xlink:title="LesseeOperatingLeaseDescriptionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="OperatingLeaseWeightedAverageRemainingLeaseTerm1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:title="presentation: LesseeOperatingLeaseDescriptionAbstract to OperatingLeaseWeightedAverageRemainingLeaseTerm1" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="OperatingLeaseWeightedAverageDiscountRatePercent" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LesseeOperatingLeaseDescriptionAbstract" xlink:to="OperatingLeaseWeightedAverageDiscountRatePercent" xlink:title="presentation: LesseeOperatingLeaseDescriptionAbstract to OperatingLeaseWeightedAverageDiscountRatePercent" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="LesseeOperatingLeaseDescriptionAbstract" xlink:title="presentation: LeasesAbstract to LesseeOperatingLeaseDescriptionAbstract" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:label="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="OperatingLeaseLiabilitiesPaymentsDueAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueYearThree" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueYearFour" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueYearFive" order="4.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityPaymentsDue" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityPaymentsDue" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingLeaseLiability" xlink:label="OperatingLeaseLiability" xlink:title="OperatingLeaseLiability" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:to="OperatingLeaseLiability" xlink:title="presentation: OperatingLeaseLiabilitiesPaymentsDueAbstract to OperatingLeaseLiability" order="8.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="LeasesAbstract" xlink:to="OperatingLeaseLiabilitiesPaymentsDueAbstract" xlink:title="presentation: LeasesAbstract to OperatingLeaseLiabilitiesPaymentsDueAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/LeasesDetailsCalc2" />
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_QuarterlyFinancialInformationDisclosureAbstract" xlink:label="QuarterlyFinancialInformationDisclosureAbstract" xlink:title="QuarterlyFinancialInformationDisclosureAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="RevenueFromContractWithCustomerExcludingAssessedTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="RevenueFromContractWithCustomerExcludingAssessedTax" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to RevenueFromContractWithCustomerExcludingAssessedTax" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="GrossProfit" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to GrossProfit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to NetIncomeLoss" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="QuarterlyFinancialInformationDisclosureAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: QuarterlyFinancialInformationDisclosureAbstract to EarningsPerShareAbstract" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="presentation: RestatementDomain to ScenarioPreviouslyReportedMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="presentation: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="presentation: RestatementAxis to RestatementDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="presentation: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="presentation: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="StatementOfFinancialPositionAbstract" xlink:title="StatementOfFinancialPositionAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_InventoryNet" xlink:label="InventoryNet" xlink:title="InventoryNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="InventoryNet" xlink:title="presentation: StatementOfFinancialPositionAbstract to InventoryNet" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="DeferredIncomeTaxAssetsNet" xlink:title="DeferredIncomeTaxAssetsNet" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="DeferredIncomeTaxAssetsNet" xlink:title="presentation: StatementOfFinancialPositionAbstract to DeferredIncomeTaxAssetsNet" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="RetainedEarningsAccumulatedDeficit" xlink:title="RetainedEarningsAccumulatedDeficit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfFinancialPositionAbstract" xlink:to="RetainedEarningsAccumulatedDeficit" xlink:title="presentation: StatementOfFinancialPositionAbstract to RetainedEarningsAccumulatedDeficit" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfFinancialPositionAbstract" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfFinancialPositionAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="presentation: RestatementDomain to ScenarioPreviouslyReportedMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="presentation: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="presentation: RestatementAxis to RestatementDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="presentation: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="presentation: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeStatementAbstract" xlink:label="IncomeStatementAbstract" xlink:title="IncomeStatementAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_CostOfRevenue" xlink:label="CostOfRevenue" xlink:title="CostOfRevenue" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="CostOfRevenue" xlink:title="presentation: IncomeStatementAbstract to CostOfRevenue" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_GrossProfit" xlink:label="GrossProfit" xlink:title="GrossProfit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="GrossProfit" xlink:title="presentation: IncomeStatementAbstract to GrossProfit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_OperatingIncomeLoss" xlink:label="OperatingIncomeLoss" xlink:title="OperatingIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="OperatingIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to OperatingIncomeLoss" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:title="presentation: IncomeStatementAbstract to IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="IncomeTaxExpenseBenefit" xlink:title="IncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="IncomeTaxExpenseBenefit" xlink:title="presentation: IncomeStatementAbstract to IncomeTaxExpenseBenefit" order="4.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: IncomeStatementAbstract to NetIncomeLoss" order="5.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="EarningsPerShareAbstract" xlink:title="EarningsPerShareAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasic" xlink:label="EarningsPerShareBasic" xlink:title="EarningsPerShareBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareBasic" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="EarningsPerShareDiluted" xlink:title="EarningsPerShareDiluted" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareAbstract" xlink:to="EarningsPerShareDiluted" xlink:title="presentation: EarningsPerShareAbstract to EarningsPerShareDiluted" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareAbstract" order="6.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfSharesOutstandingBasic" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfSharesOutstandingBasic" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="WeightedAverageNumberOfDilutedSharesOutstanding" xlink:title="presentation: EarningsPerShareBasicOtherDisclosuresAbstract to WeightedAverageNumberOfDilutedSharesOutstanding" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="IncomeStatementAbstract" xlink:to="EarningsPerShareBasicOtherDisclosuresAbstract" xlink:title="presentation: IncomeStatementAbstract to EarningsPerShareBasicOtherDisclosuresAbstract" order="7.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="IncomeStatementAbstract" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to IncomeStatementAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="presentation: RestatementDomain to ScenarioPreviouslyReportedMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="presentation: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="presentation: RestatementAxis to RestatementDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="presentation: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="presentation: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="StatementOfIncomeAndComprehensiveIncomeAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="ComprehensiveIncomeNetOfTax" xlink:title="ComprehensiveIncomeNetOfTax" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="ComprehensiveIncomeNetOfTax" xlink:title="presentation: StatementOfIncomeAndComprehensiveIncomeAbstract to ComprehensiveIncomeNetOfTax" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfIncomeAndComprehensiveIncomeAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="presentation: RestatementDomain to ScenarioPreviouslyReportedMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="presentation: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="presentation: RestatementAxis to RestatementDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="presentation: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="presentation: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="StatementOfCashFlowsAbstract" xlink:title="StatementOfCashFlowsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: StatementOfCashFlowsAbstract to NetIncomeLoss" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="DeferredIncomeTaxExpenseBenefit" xlink:title="DeferredIncomeTaxExpenseBenefit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="DeferredIncomeTaxExpenseBenefit" xlink:title="presentation: StatementOfCashFlowsAbstract to DeferredIncomeTaxExpenseBenefit" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="IncreaseDecreaseInInventories" xlink:title="IncreaseDecreaseInInventories" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfCashFlowsAbstract" xlink:to="IncreaseDecreaseInInventories" xlink:title="presentation: StatementOfCashFlowsAbstract to IncreaseDecreaseInInventories" order="2.0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfCashFlowsAbstract" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfCashFlowsAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:label="AccountingChangesAndErrorCorrectionsAbstract" xlink:title="AccountingChangesAndErrorCorrectionsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementAxis" xlink:label="RestatementAxis" xlink:title="RestatementAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RestatementDomain" xlink:label="RestatementDomain" xlink:title="RestatementDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_ScenarioPreviouslyReportedMember" xlink:label="ScenarioPreviouslyReportedMember" xlink:title="ScenarioPreviouslyReportedMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="ScenarioPreviouslyReportedMember" xlink:title="presentation: RestatementDomain to ScenarioPreviouslyReportedMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd#srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:label="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementDomain" xlink:to="RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" xlink:title="presentation: RestatementDomain to RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="RestatementAxis" xlink:to="RestatementDomain" xlink:title="presentation: RestatementAxis to RestatementDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="RestatementAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to RestatementAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="StatementEquityComponentsAxis" xlink:title="StatementEquityComponentsAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_EquityComponentDomain" xlink:label="EquityComponentDomain" xlink:title="EquityComponentDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_RetainedEarningsMember" xlink:label="RetainedEarningsMember" xlink:title="RetainedEarningsMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EquityComponentDomain" xlink:to="RetainedEarningsMember" xlink:title="presentation: EquityComponentDomain to RetainedEarningsMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementEquityComponentsAxis" xlink:to="EquityComponentDomain" xlink:title="presentation: StatementEquityComponentsAxis to EquityComponentDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="StatementEquityComponentsAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to StatementEquityComponentsAxis" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis" xlink:label="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="AdjustmentsForChangeInAccountingPrincipleAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_ChangeInAccountingPrincipleMember" xlink:label="ChangeInAccountingPrincipleMember" xlink:title="ChangeInAccountingPrincipleMember" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:label="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ChangeInAccountingPrincipleMember" xlink:to="ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" xlink:title="presentation: ChangeInAccountingPrincipleMember to ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:to="ChangeInAccountingPrincipleMember" xlink:title="presentation: AdjustmentsForChangeInAccountingPrincipleAxis to ChangeInAccountingPrincipleMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="AdjustmentsForChangeInAccountingPrincipleAxis" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to AdjustmentsForChangeInAccountingPrincipleAxis" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:label="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="StatementOfStockholdersEquityAbstract" xlink:title="StatementOfStockholdersEquityAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="StockholdersEquity" xlink:title="presentation: StatementOfStockholdersEquityAbstract to StockholdersEquity" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_NetIncomeLoss" xlink:label="NetIncomeLoss" xlink:title="NetIncomeLoss" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="NetIncomeLoss" xlink:title="presentation: StatementOfStockholdersEquityAbstract to NetIncomeLoss" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_StockholdersEquity" xlink:label="StockholdersEquity_2" xlink:title="StockholdersEquity" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="StatementOfStockholdersEquityAbstract" xlink:to="StockholdersEquity_2" xlink:title="presentation: StatementOfStockholdersEquityAbstract to StockholdersEquity" order="2.0" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:to="StatementOfStockholdersEquityAbstract" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems to StatementOfStockholdersEquityAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" xlink:title="presentation: NewAccountingPronouncementsOrChangeInAccountingPrincipleTable to NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems" order="3.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="AccountingChangesAndErrorCorrectionsAbstract" xlink:to="NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" xlink:title="presentation: AccountingChangesAndErrorCorrectionsAbstract to NewAccountingPronouncementsOrChangeInAccountingPrincipleTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://transact-tech.com/role/SubsequentEventsDetails">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="SubsequentEventsAbstract" xlink:title="SubsequentEventsAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTable" xlink:label="SubsequentEventTable" xlink:title="SubsequentEventTable" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="SubsequentEventTypeAxis" xlink:title="SubsequentEventTypeAxis" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="SubsequentEventTypeDomain" xlink:title="SubsequentEventTypeDomain" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventMember" xlink:label="SubsequentEventMember" xlink:title="SubsequentEventMember" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventTypeDomain" xlink:to="SubsequentEventMember" xlink:title="presentation: SubsequentEventTypeDomain to SubsequentEventMember" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventTypeAxis" xlink:to="SubsequentEventTypeDomain" xlink:title="presentation: SubsequentEventTypeAxis to SubsequentEventTypeDomain" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventTable" xlink:to="SubsequentEventTypeAxis" xlink:title="presentation: SubsequentEventTable to SubsequentEventTypeAxis" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd#us-gaap_SubsequentEventLineItems" xlink:label="SubsequentEventLineItems" xlink:title="SubsequentEventLineItems" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_EmployeeRetentionCreditReceivableAbstract" xlink:label="EmployeeRetentionCreditReceivableAbstract" xlink:title="EmployeeRetentionCreditReceivableAbstract" />
    <link:loc xlink:type="locator" xlink:href="tact-20221231.xsd#tact_ProceedsFromEmployeeRetentionCredit" xlink:label="ProceedsFromEmployeeRetentionCredit" xlink:title="ProceedsFromEmployeeRetentionCredit" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="EmployeeRetentionCreditReceivableAbstract" xlink:to="ProceedsFromEmployeeRetentionCredit" xlink:title="presentation: EmployeeRetentionCreditReceivableAbstract to ProceedsFromEmployeeRetentionCredit" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventLineItems" xlink:to="EmployeeRetentionCreditReceivableAbstract" xlink:title="presentation: SubsequentEventLineItems to EmployeeRetentionCreditReceivableAbstract" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventTable" xlink:to="SubsequentEventLineItems" xlink:title="presentation: SubsequentEventTable to SubsequentEventLineItems" order="1.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="SubsequentEventsAbstract" xlink:to="SubsequentEventTable" xlink:title="presentation: SubsequentEventsAbstract to SubsequentEventTable" order="0.0" preferredLabel="http://www.xbrl.org/2003/role/label" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>12
<FILENAME>image01.jpg
<TEXT>
begin 644 image01.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 0N!WP# 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#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBD) H 6BF^8OK2
M>:GK0 ^BH_.3UH\Y/44 244SS4]:7S%]: '44@(-+0 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 44A8"F^8OK0 ^BH_.3UH\Y/44 244SS4]:7>OK0 ZBD!S2T %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !110: "BD%+0 E+5*^O%MADFJ*ZRA_B%-(3:1MT5
MB_VPF?O"E_M=/[PI\K%S(V:*QO[73^\*0ZPG]X4<K#F1M45C?VNG]X4'6$Q]
MX4<K#F1LT5BC6$Q]X4HU=#_$*.5AS(V:*Q?[83^\*7^UT]11RL.9&S16+_;"
M9^\*7^UT]11RL.9&S16,=70?Q"C^UT]11RL.9&S16-_:Z>HH_M=/44<K#F1L
MT5C?VNGJ*/[73U%'(PYT;-%8W]KIZBC^UT]11RL.=&S16+_;"9^\*/[83/WA
M1RL.9&U16*=80?Q"@ZP@_B%'*PYD;5&:Q?[83'WA2?VRG]X4<K#F1MT5F6^H
MK*P -:0.0#4M%"T44'I0 45E76IK!)M)J)=80C[PJN5BNC:HK(&K(1U%1G64
MS]X4<C%S(VZ*Q/[83^\*7^V$QG<*.5AS(VJ,UBC6$Q]X4G]LI_>%'*PYD;>:
M,UB?VRG]X4?VRG]X4<K#F1MT5CKJR'^(4[^U%]11RL?,C6HK,&HKZTIU%0.H
MHY6+F1I452M[Q9FP#5VDU8I.X4444@"BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HI&.%)K)EU5(YBF1Q32N%S7HK%_MA,_>%+_:
MZ?WA3Y63S(V:*Q3K"#^(4O\ :Z?WA1RL.9&S16.=60+G<*:NL(3]X4<K#F1M
M457M9Q.F0:L5)04444 %%%% !1110 4444 %%%% !1110 45%/((H]QK+?5T
M5L;A32N)NQLT5BG6$_O"C^V$_O"GRL7,C:HK%.L)C[PH_MA,?>%'*PYD;5%5
M;.Y%RFX&K524%%%% !1110 4444 %%%% !1110 4444 %%95SJ:PS;"141UA
M,XW"J46R>9&U16,VKH/XA0-73U%'*PYD;-&:QSJR 9W"F?VRG]X4<K#F1MT5
M5L[D7"9!JU4E!1110 4444 %%%% !1110 4444 %%%5[NX$$>XF@"QFL?4M0
M%NV,U4E\01H<;A7'^(-?$DAVO6]*FY2U,:E1*-T;5WXD$0/SUAS>-51B/,_6
MN'U75G(;#UQMW?S%R0YKNCA4SD6(=SV+_A.ES_K/UIX\<+_ST_6O#OM=QNSO
M:IA=S[<[S3>%0Y8BQ[E!XT5SCS/UK9M/$HEQ\]> 6=_,&&7-=3INKNA7+T/"
MJQ*Q#9[UIM\+CO6MFO+_  [XA5"-SBNNCU^-_P"(5PUJ3C*R.RG431T5%5[2
M<3Q;@:L5SFP4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !15:[N!!'N)K/&KH1]X4U%L3:1LT5C?VNF/O"A-81G W#FGRL7,
MC9HID3[XPWK3ZDH**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBFNVU2: '4C$!2:RKG5$A)R169<>(XT5AN'2K4&2Y(FU'5A;NP
MW=*YVZ\5K%GY_P!:Y[7==\R1BKUPNI:E(V<.:[:>'N<DJUCT=_'"AL>9^M+_
M ,)NO_/3]:\5EO)R^=QH6\GR/G-=*PBL9/$M'NMOXP5R/G_6MF#Q"'4'=7@E
MEJ$JL,N:ZNRUA@B@O64\,D$<0VSW?3K@7$ ;-7:\_P! \1HEJ%9QFNBBUQ).
MC"O/E!IG=&::-ZBJEI="X'!JW4-%W$[TM)WI:0(****!A1110 444UVVH30
MZBLQ]256QFC^TEQU%5RL5T:=%9G]HKCJ*3^TE]11RL.9&I167_:2^HI!J:GN
M*.5BYD:M%9?]I+ZBC^TE]11RL.9&I167_:2^HH_M)?44<K'S(U**R_[27U%'
M]I+ZBCE8N9&I167_ &DOJ*7^TEQU%+E8<R-.BLK^TU]12_VDOJ*.5AS(U**R
M_P"TE]11_:2^HI\K'S(U**R_[27U%']I+ZBCE8N9&I169_:2^HI&U)0.HHY6
M',C4I*S?[27&<BG1:@LD@7-*S'=,T!2T@Y%+2&<9XWOC9Q YQ7#PZ\?[U;'Q
M8N3;VZX->3IJ9$8.ZNJA"YR5Y69Z'_;QW_>_6I/[=/\ >KSA=58O]ZI6U5@/
MO5U^Q.;VIZ"=>_VJ:VO'^]7GBZLQ_BH&JL3]ZDZ0*KK<]%&O''WJ1M>.W[U>
M>#5FS]Z@ZJ2<;J%1U'[4]"77CM^]3EU[@_-^M>='56'&ZC^UF'\5-T1QJZ'H
M@UXY^]3O[>_VJ\Y.JL/XJ0ZNV/O4_8:B=4]$_MX[OO4\:]S]ZO.!JK?WJ7^U
MF_O4.@'M3T5]>.?O?K1_;W'WJ\Z_M5C_ !4G]K-_>J?8#=4]&_M[_:H.O<?>
MKSE=68G[U(VKMG[U2J.I+K'HXU[C[U U[_:KS@:NW]ZC^UF_O5HZ(E59Z.->
M_P!J@:]S]ZO.#J[#^*C^UFQ]ZE[(/:L]$_MX[_O?K2G7CN^]^M>=#56Z[J=_
M:K==U/V)2J-GH;:\<CYOUI'UXX'S5Y[_ &JQ_BI/[58_Q4>Q#VC/1/[>.W[U
M,_MXY^]^M< NJL3C=3'U0@_>K*5*Q<:I[!H.K>=<(-W>O28CF)3[5X)X.U R
M7\0SWKWFV.;:,_[(KBJ*S.VF[HEJ.:01H2?2I*RM<G,%J6![5"W+.!\2:SY5
M\RAN]9<&O';]ZN4\4:J3J3?-WK&35F7C=7H4Z=XG#4J69Z8NN_*?FJHVO$N?
MG_6N!;6&5?O5#'JK,Q^:M_8&'MCT5M>./O4[^WCL^]7G?]J$MC=2_P!JMG&Z
MI= %5/0UUX[?O4P:\?[U<!_:A!QNI&U,@CYJ7L2E5/0?[=/][]:3^WCG[U<"
M=3./O5&VJ$#.ZFL.5[6YZ7#KO^U5E=<Y^]7E\>KL!]ZK":RV,[JET!^U/44U
ML?WJ636QC[U>8#7&'\5+_;C'^*E[$2JZGK^B:TAN/F>NL&K0G^(5\^V?B%H)
M-V^MJ#Q:Q;_6?K6%2@[FT*R2/:QJ,1/WJLQ3+*.#7D-KXG+2 ;_UKO\ P]J2
MW$>2PZ5A.DXHWC439TE%,$JGH13^M9&@4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110!!=S"*!R3VKRG4]<V:I(H;H:[OQ/>?9K1CG'RU\_Z
MQJ[?VI(=W>MZ4+G/6J6.[.O'=][]:=_;W/WOUKSG^U6QG=2?VNW]ZNR-*YQR
MJW/17UXY^]3O[>.!\U><KJK'^*C^UFS]ZK]B+VK9Z3+KW[K[U1P:Z=X^:O/#
MJ[,,;J(]58,/FK.5&R-:=0^B?#%U]IM-V<\5T%<)\.;L3Z9DGM7=UY\E9V.Z
M.P4445)04444 %%%% !1110 4444 %%%% &9KDWD6#/7E]UKI$Y&[O7?^-)O
M)T21O:OGVYU9C,WS=ZZ*,;G/6=COVUX\?-^M!UXX^]7G0U9C_%2C56/\5=?L
M3F]I8]$;7CM^]^M)_;QV?>_6O//[5;INH&JMG&ZFZ0O:,]Z\)ZLDUOAFY-=@
M#D9KP'PGX@,=_%#OZFO>+.02VL; ]5K@K0Y6=M&7-$GHHHK(U"BBB@ HHHH
M**** "BBB@ J.:01H2?2I*Q_$%R;>S+ ]J:U X'Q!K?E:J5#<9K/.NG>/FKC
MO$FK,=39MW>LU-58KG=7?3IZ'#4DST2;7NGS?K2KKW ^:O.'U9B?O4#5V_O5
MHJ6IBJCL>E2Z[^[^]59=>.<;JX ZNS#&ZHDU5C,!NI2II(N%34^B?"-U]IL]
MV<\5TM<+\-YO-TS.>U=U7G2W/06P4445(PHHHH **** "BBB@ I"<#-*3BJ]
MQ.J0L<CI0@&2WT<75JYSQ)K4269VOSBN=\2>(?L[, _3WKS[5?%#W"E-^?QK
MJIT&V<TZRL7=0U^02'#'\ZP+G5Y)FR6-4)KDR1ELU41MPS7I4Z-M3AJ5-"Q=
M7+/WK/D3=5DC=2%:[(P.5S*XB&VI/+'ETIZXH![4-"<KB1#;5@7#1XQ3%7FG
MR)Q4V"#U-*RUB6)A@FNHL=??"Y8_G7 CY35N.\,8'-<U6E?4[*<VCZ'\.:S$
M]@NYN:Z"*^CD/#5\_:5XH>! F^N[\/\ B'SY4!?K[UYDZ#6IWPJIH]0!R,TM
M003J\2G(Y%3]:Y3<**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH *1C@9I:BG8+"Y]!0)G,^*=42"T(#<BN%CU[Y?O?K5#QIKQ^V20[^AKB%
MU9@<;J]"E2]TY:D];'H_]NG:?FI+773]J0%N]>>?VLW3=2IJI2=#N[TW2T,N
M?4^E=)O$N+2/!R<5I5YWX#U4W:HA;.*]$K@DK,[H.ZN%%%%24%%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 444A('6@!'<(N369>ZG%'"WS4NKW
MBPV;-N'%>4ZYXF*%U#]_6M:=-R,JE11-#7=<P[;6KB=0U^7G#'\ZS+S66N'/
MS9K-FD\P5Z,*2..I4LBU-J;R]35*60N*KY^;%25V4H6.*=09Y8(IJ1C-29QQ
M0>#739&+;8+\IXJU%=.AZU!CBG,N$S6-2-RX-HUK77)8I H8X^M=;IFOL0,M
M^M>9EMIS5ZSU$Q]ZXI4=3KA49[_X:UA'7YFKJXKI)ONG-?/^C>(F@(&^O3O"
MFLB[<!G_ %KAK4FG<[:=6ZL=T*6F+(K=#3ZY3I"BBB@ HHHH *SM3ODMX&!.
M#6C7F?CW6&LY2@;%5"-W8F3LB.ZUL><V&[T@UL%?O5YL^M,[L=W>DBUHEB-U
M=RIG*YGI?]MC'WJ3^VQ_>KS9M:8-C=31K;;OO5HJ5S-U3THZV-OWJ:FN#^]7
MG#ZTW]ZF?VTP_BIJB+VIZ8-<&?O4G]MC/WJ\T_MML_>J0ZRVW.ZCV(O:GI/]
MN#^]1_;@_O5YG_;;?WJ4:VV/O4>P'[4]+_MP?WJ0ZX/[U>:?VVW]ZD_MMO[U
M-T!>U/2SK@Q]ZG#6QL^]7F8UIB?O4O\ ;;9QNK-T1.J>C_VX/[U.77!_>KS0
MZRV?O4IUIA_%2]B"JGI?]N#^]2_VX/[U>:?VTW]ZD.M-C[U-4="_:GI1UP?W
MJ!K8S]ZO-/[:;'WJ4:TV/O4_9$.J>F'6QQ\U-FUP;!\U>:KK;'^*D?6F/&ZE
M[(2JGIJZV/+^]5K2-8$VH(F[J:\J&M-L^]6KX4U<RZ_$F[J:SG2LKFM.I=GT
M+&<QJ?:G5' <V\9_V14E<)WGD'QE_P"/=*\=4'R17L?QD_X]TKQX'$ KTL(K
MH\[%.TAD0.^GS9'%$/W\T^9<G->DHG Y%=<BEP13@N33BO2DX:BYAF".:;SF
MIRORU'MIJ <PTY-+M)I^VG@8%/D17/H1;2:9M).*G'%"CYLT^43F1!3G%!4Y
MJ;'.:#US5<BL',1;2*0J:F(S2'FI<-!\Y"J$<TC(2:L=J3%1[,AR(-AI=AQ4
MV*=CBFHB4RMM)H"DG%3*.: ,-1R*Y7,1[3G%+@CBI.^:#US5<A2G8CVD4;2*
MD(S0>:7('.1X(YIK@[<U*W(Q2./W593AH.,]3K_ H)U"(^]?15K_ ,>L?^Z*
M^=O G%_%]:^B;7_CUC_W17CXA6D>MAW=$U87B89L6^E;M8?B3_CR;Z5C#<W>
MQ\W^)23J[#WK'8$2 5L^)/\ D-,?>LF09D!KV:,=#RJ[U$D!I$4K4K#.*".*
M[8P./F&!3G-*5/6GBAL8Q2< 4B, DYIQ!-.4?+0.*A15RE+03DU&X/2IAQ32
M*UY1J9$ 0*D4GI2XXI!UJ7 ?.(Q(I-Q'>GL,TS&:ATR5-B[SZU-'.R<YJ+9Q
M3'SC%1*F:*9JP:F4<'=79Z#XK^S*%W_K7F.UJEBDEC88)KEG2OH=%.KJ?0FD
M>)!=,HW]:[BUD$D"MGK7SKX=U9H9$W/WKV/1-=66V1=PKAJTK;';3J7.NHJ*
M"3S$W5+7,;A1110 4444 %%%% !1110 4444 %%%% !1110 4444 <-\0)O*
MLSSVKYZO\R7[GWKW;XGR;+/\*\*D^:<M7?AXWB<&*>I'M.,4W8:G]Z.*]&G#
M0\YRL,1"*:R$5.*1AFMN0(R($4DT/E:EC'S8IDXXK*<-#6$]3UWX::EY=LL>
M>M>P1G=&I]17SSX!N2EU$F>]?0=J<VT9_P!FO%Q$;2/6I.\2:BBBL#4****
M"BBB@ HHHH **** "BBB@#E?'O\ R+\OT-?--QGSW^M?2_CS_D 2_2OFJX'^
MD/\ 6NW"JYRXAV(D4TXH13Q3G(Q7K*F>;*9%M.,TJH2<U(<;*%("T2IZ"YRS
MI-R;?6(3GH:^C_"VH?:[./G.%KY@C8B^1QV->Z?#W4,P*I;M7FXJ&ESOPTST
M^BFHVY :=7G'<%%%% !1110 4444 %%%% !7/>*QG3V^E=#6%XG&;$_2JAN*
M6Q\V^(U/]I,/>LR/(7%;/B5?^)FWUK)"\UZ]*-T>56GJ1E3FG.A4 T_J14DH
M!45T\AS<Y6"G&:=#&3,#4A&$IULP\P"LZL?=-*4KL][^&(QI7X5Z!7!?#/\
MY!?X5WM>)4^)GLP^$****@H**** "BBB@ HHIDK[$S0!%>2B*W9L]!7G^L^)
MA"LB[_UK9\0ZXL%K(F[M7B>NZH\TLF&/)KKH4;[G/5J6$UO63=S,-W>N=D4L
M<U#EVE))/6K>1LKT:<+'FU*A"&XVT*-O%(!^\S4C#)KMC'0PE*Z#.*&.!2$4
M,,BK,AN,G-/"<9I%'%2Y&S%#0DQ@..:'DR*3M3=AJ+%Q(R_-+R:8R$&IHUXH
M<;FJG8;"Y68<UTNE:N;.=/FKF<8ES22NWF @FN6K3T-X5+'O.A>)Q<>6F_\
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
MU[[\.IC):@$]!7CXV/4]C"RZ'H-%%%>8=P4444 %%%% !1110 4444 %%%%
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
MI*%P\8(]*DK.T>;SK16SVK1KQ&K.Q["=T%%%%(84444 %%%% !1110 4444
M%%%% !11368*,F@#$\17ZV^GRC.#BOG?Q'?/<7<F3_%7J?C[5_*+QJW6O%KR
M7S9V/J:]'"TKZG!B:EB 9ZU- ?GYI ORTT':U>O"'*CRW*[)I,>956X^]Q5C
M.1FH?+:608&:RJ3L;1C<=:6SSN !7::1H4C;25_2F^%M&::1=R=Z]?TWP\B6
MZ':.E>=5K6.ZE2,SP]HJJ5W+^E=<NE0C^$5):60@Q@5?KAG-MG9""2*(TZ,?
MPTOV",]JNT5%V59%!M-B/\-9NIZ/$T!PHKH:CFC\Q<549M.XI131XSK^AG#;
M5KS;4M-EMYCD'K7TM=Z,D^<J*\U\9>'Q"'*I7H4L1=V..=#2YY$^<@5.ARM+
M+;.DK!@1@TD7!(KT*<KZGGU8ZC"?FQ4H&5J+K+4H^]BM)ZD15F.M)S!=*0<<
MU[A\/]3\V(!CVKP>4[9017H_@#4O+D52W>O.Q-.Z.^A4L>\JVY<TM5;&82VR
M'/:K5>4ST4%>._$R!I+PXKV*O/?&=A]HG)QFKI.TB*BO$\,:R?>>*22R?'2N
M[.B'<?DI#HA/\%=\:IQRIZ'"FQ?R^E(+%]G2N[_L0XQLI5T0]-E:>V(=(X,6
M+[3Q2)8OSQ7?-H9'\%,_L0C^"I=42I'"K92;NE*+)]W2NZ&AG^Y1_8AS]RJ]
ML-4C@I+&3TJ+RFCZUZ')H9\HG97+ZK9?9V((Q6]&K=F%6G9&)FGYJ+/S4Y37
M98Y+6'L?EI%0LN!UI,Y;%6]/C\V[5/6IF[(N*NRLMFY;I3Y+)QCBNU31"2IV
M5+/HA^7Y*X)5=3K5/0XA;*0CD4@L7W=*[S^Q"(Q\E-&B'^Y4^V*C2.&^PONZ
M4/9/GI7=?V(<_<I#HA/\%#K%^R.%-D_I2M8N1TKN?[$/]RG+HA)^Y4>W#V5D
M<*M@X'2M7P?:.GB>$D=ZZD:'_L59T'1S#KD;[>AI3J7BPIT_>/:+;_CVC_W1
M4M,A&(4'M3Z\P](\@^,JYMEKQVV;Y0*]F^,(S;+7C$0V\UZN"V/,Q>Y-U?%(
M_P O%$?,F:6;EJ]:#U/-:&*<TC+BGJ,4I&:8EN, P,T$<9IW48H/3%-,=AJC
MC-+G-*!\M"KQ0V2"G-.#YXI@&W--!^:E<=A6/S8I1P*7;DYI331+%!P*;WHH
MH) G%-/(S2D9I3]VF6MAR)E,U&XP:GA/[NHY%R:8QF_BG*<TPKBE3K4,=AQ.
M3BFGCBEQ\V:#R<T"$Z&E;@4F,FE/(H%8=%P<TR;DTY3BD<9&:RGL;01V?@;_
M (_H?K7T+:_\>T?^Z*^>? __ "$(?K7T-:_\>L?^Z*\/%_$>OA=B:L7Q#_QY
MM]*VJQ?$/_'FWTKGI_$CHG\)\W^*3_Q.7'O66IXQ6GXI'_$Y8^]9@%?145>)
MXE?<#P:#Q2D9-(XXK9HYKCU/&:CDY.:>HXIKCBIV%U%3[F:3=S2*<(:A+X-'
M,:<MRRIS29^;%1+)BC?@YJ92'RDN?FQ0QYQ4/F?-FEWY.:+ARDOW32L>*B,F
M:-^1BM(RT)<=10<&IU7(S5:K"-\N*7,#0UFJ/;GFGL.:51Q5(+Z$>:>#D8I"
MF#0!CFGNA7T$*Y.* /+<&G=\T.-PK"K"Z-:<K,]-^'NJ["J;NM>UVS[X%;U%
M?-?@^X,%[&N>K5]&Z6V[3XCZBO#Q,;,]C#NZ+E%%%<IT!1110 4444 %%%%
M!1110 4444 %>8_$B?RU(SVKTVO(_BI)M?&:VH?&C.J_=/'[EMT['WH3D4UO
MFD-/48%?04]$>!7>H'K24IY-+BNBVA@B,_*:E!P*B;DT[/%9V-'L*_K35;!I
MS?=J,#-:I:"2'2_,A-=[\-=1^SRA,]37!N,1D5O>#Y3%?1C/5J\S%1NCNP[L
MSZ9M'\RV1O45-5+2CNTZ(_[-7:\1[GL+8****0PHHHH **** "BBB@ HHHH
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
M;J6.[4+G&:\C$GHT-SZ/C?>@8=Z?5336+6,9/4BK=<!W!1110 4444 %%%%
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
MSS7O?@G2OL5NI*XR*\;$O4]/#HZZUC\JW5/05-117$=@4444 %%%% !1110
M4444 %%%% !7*>,+OR=-F&>U=77F?Q#O?*BDCSU%;4(WG8SJNT3Q'4)?/OI#
M_M4@X45 3FYD/J:ESQBO=@K(\:L]2.5N*Z;P9:^9JD9QWKEI>*]&\ 6>Z>.3
M%9U9V3%25V=%XLT\"S)Q_#7D3ILGD'O7O?BN#.G,<?PUX/>G;=2?6C#SO$JJ
MK,K,.::R[1NIR'<:=(,KBMIZD(ZOP'<_\3F)<]Z^CH#F!/H*^7O!\WD:[%SW
MKZ6TJX\^U0Y_A%>+BU[QZN&E[MB_1117(=04444 %%%% !1110 4444 %%%%
M &-XANOLMDSYQQ7SOXINOM>J,<YYKW/Q[+Y6D,<]J^>;U_,NBWO7H8.%U<X\
M3*VA3;Y#M]:>HVBDD7<X-&>*]6&AYDM6,EXKI?!NG_;;]5(SS7-R?-M'O7IO
MPXL,7B2$5RXFI:)T8>%V>F:-HXM ORXKI@, "D50%'%.KQI2;9ZR5D%%%%2,
M**** "BBB@ HHHH **** "L[5K87%NPQVK1IDB[HV'M33LQ-71\Y^,=.\J]D
M.WO7)'Y82*]A\=:5\LDNVO([B/:Q6O8PL[H\S$0L58#Q4DG2F8V4N[=77)W.
M1:,L:;+]GNT.>K"OI7P?,)=$B.>U?, ;$R'T->]^ -5#V,4&[H*\O%K0]+#O
M4]&HH'2BO/.T**** "BBB@ HHHH **** "O#_BJF=0S[U[A7A_Q4?&HX]ZZ<
M)_$.?%?PSS$CK3(Q\YJ;K4>,&O?B]#PVPD.1BM_P-QXAA^HKG6/-=%X'/_%0
MP_45S8E^ZSJPWQ'TW;_\>\?^Z*EJ*W_X]X_]T5+7@'M!1110 4444 %%%% !
M1110 4444 <WXFLA=(!C-<X-$7:/DKT"XMQ,.:K_ &!<=*N,K$2C<PCI$?\
M96W8,XK$311S\M=_]G'E;*@%@OI6D*MB)4[G$'1%_N4G]BC^[7<_8%]*3[ O
MI5.L1[$XDZ*N/N4W^Q1_=_2NY^PKZ4GV!?2E[8;HG$#15_N5M:=I$:VS@H.E
M;WV!?2IHX BD"G*M=6"-*SN>4>)M+6/S"%KRC45V7+#WKW_QA:JMNQQVKP/5
MQB^<>]>AA9\QPXB'*5DZ4A^]3D^[36KTX[' ]&#<TV@<BG+UK7H),"/EJ2W^
M^!3:6$_OQ7/4=D:4U=GIOA331/;AMN:ZB315('RTOP]M%ETP,1VKMC8KZ5XM
M2O:5CU8T+HXB+15[I36T1=_W*[D6*CM2?8%]*Q]L7[ X?^Q1_=IK:*-WW:[K
M[ OI1]@7TI^W*5$X?^Q1_=HDT48^[7<?8%]*#8*>U)5P5$Y;1]&1)\LE0:KH
MJM=DA*[2&T6)L@4V6S61\D5'M/>N:1A96,OP_IR00_=YKH0,#%0P0B)<"IJS
MD[LM!6+XB_X\V^E;58OB+_CS;Z4Z?Q(4_A/G#Q3_ ,AA_K62*U_%/_(7?ZUE
M#[M?04?A/%K+4:_-$?6G#FA.#75$Y6A9!Q4<8^<"I320C]\*QK/0NEN>S?#G
MBS7->GJ/E6O,?A_Q;+BO4(Q\BUX6(?O'K4%=#QTHI:*YCK$I.].- H!H:101
MQ3J2@5B%HPU<]KNG++ WR\UTV*KW$ D0@UI"=F93A='SYXFTHPNS;>E<<IP6
M%>V>,]*'V>1@M>*S(8[EP?6O4H3NCSJL1%7FGTO&!BF,>*]"".22LQW:E'2F
MJ>*4GBM$[,@CD/RFMOP=<&&_&#_%6$_0UH>'G\N^3_>%<&*C=';AWK8^G]#?
M?ID;>U:58_AIMVC0GVK8KPI;GLK8****0PHHHH **** "BBB@ HHHH YKQ==
M!-(F3/:OFN_.Z]E/^T:]S\>7ACCDCSUKPN[YN&/J:]3!0ZGFXR1!VIR\&G./
ME%(>%KUXK0\UBL.]1PC=<J/>IC_J<TW3UWWJ#WJ9ST+IJYZWX.M<Z<_'\-<7
MXRB\J=_K7IG@^VQIK<?PUP'Q"A,;L<=ZX83O4:-90TN<0O*5(G3%16_*U*O^
MLQ7=3U1SR0O>HIOO U+)PXIDG45,UH5#1GI7PONO*NL$]Z]QB?S(PPKYT\%7
M)ANEP>]?0&DOYEBC'TKP<1&TKGM8>?-$O4445S'0%%%% !1110 4444 %%%%
M '+^.O\ D 2_2OFRZ_X^6^M?2?CK_D R?0U\V7?^O?ZUZ."1Y^,W(SS01Q2I
MTIU>U#8\F6Y%3UZ4G\5.K61+%[4(,4W/S5-QMH\RDM")SFDZC%(.6-.'6N:I
ML:TW9G3^"[PP:Q&">,U]%:?<BXMU(/:OEO1[@P:DK ]Z^B/!MT;G3P2<\5XV
M*A;4]7#3OH=11117"=@4444 %%%% !37^XWTIU(_W#]* /G'XBC_ (J!S[FN
M-[UVWQ& _MQS[FN*3D5[N%7N(\+%+WV.*Y%"=:EC *FHQ]XUZ,6<MM"1_N5%
M%_K!4F<TV+_7BL*ST-J.C/?/AA_R"OPKT"N!^&7_ ""OPKOJ^<J_&SWJ?PH*
M***S+"BBB@#Q_P"+,A6117DCC<,UZG\7FQ*M>5QG(KV<&KP/,Q7Q#$&&J>0_
MNL4P\&@G/%=\=#SFPA'[HYI8FPK"DZ+BHD)\P#U-.;T'#<ZCP98-<:CG&1NK
MZ%T6V$-B@QT%>3_#:P#W 8BO9XD$<84=J\'%3O*Q[6'A97)****Y#I"BBB@
MHHHH **** "BBB@#/U.V6:W8$5X=XVTDK=,P7C->_2+O7%>?^,M*$D4CA:Z\
M+4L['-7A=7/!60HQ%"#FKVH0&&X8$8YJIP!7LJ5XGE5%9D3?*V:L01^<0!4$
MPRO%;GAW3Y)YU.W(K.I.R-*4;G4^#]$)GC=E[U[=8VZP6Z #'%<QX7TA8H%8
MKSBNQ4;5 ]*\6O*\CU:4;(6BBBL34**** "BBB@ HHHH **** "BBB@ [5XM
M\4)RMX5S7LTCB-"37A'Q0N5DU+Y3WKIPOQF-=^Z>< ?.QIR]:51UH7[U>XGH
M>+/5C9$W8 KV'X>6>+6-B*\GMH_,F ]Z]W\"6H334.*XL1*R-**U-3Q+!OTR
M3C^&OGC6HC#>2?[U?36LP[]/D'M7SOXPM_)O6X_BK+"S-ZT# @&.34HY:F#
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
M*EKP#V0HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
MY#QK_P >C?2OGS5O^/\ D^M?0GC3_CT;Z5\^:O\ \?\ )]:]/!'GXO<J \4E
M-7.:#UKUX;GE36HXGBFKUH-!K6YF24ZV/^D#ZU&?NTZV_P!<*YJVQTT-SZ$^
M'/\ R"A]*[>N%^&__()'TKNJ^<J?$SW:?PH****@L**** "BBB@ HHHH ***
M* "L7Q%_QY-]*VJQ?$7_ !Y-]*N'Q$S^$^</%)_XG#?6LL'Y:T?%.?[:;ZUF
M"O?H_">+6W'#B@<&D/44K=*ZXK0Y@?[M%M_K12-]RG0#YQ6%;8NGN>T?#\?Z
M,M>I1_<'TKR_X>_\>BUZ?']P?2O"Q'Q'LX?8?1117,=(4444 %%%(: 8M-/%
M*#37Z4T)[$<H#QD5Y#\1[0%F(%>O#E:\[\?6X>)CCM710=I''B-CP<#;.P]Z
MG/*TEPFRZ?ZTU3S7N4]4>;/0:>*<@XI''-/CZ5L8/4F1@HHC8"=?K4#DBD5C
MYR?6L*^L3>CN>[> Y2T,8S7I/:O+_A\<Q1UZ@.E>#7^(]JC\(4445B:A1110
M 4444 %%%% !4%U,(82QJ>L?Q'*8=-=AZ4XJ[L)NR/$OB->"?5<@]ZXFMCQ3
M<F>_))[UBJ>*]["QM$\;%2NQ'-+U6HV-.2NY')L-;BNB\)1;]6A/O7/..:['
MP5!NOXFQWKCQ+]TZ*.Y[[8J%LXO]T5Q'Q'AWV?3M7=VPQ:QC_9KD_'4/F69^
ME>/2?OG=*/NGS[-\ERPI%/[W-/U!2E^X]ZB7K7NTGH>;/<DDY?-1RC)%2'FF
M,*UZ$P+-F^RXCQ_>%?1G@V[#Z/"F>U?-<+[9D^M>Z> KLO!&F>U>1C(W/2PC
MLSTFB@=**\L]$**** "BBB@ HHHH **** .7\=?\@&7Z5\VW7^O;ZU])^.?^
M0#)]#7S9=_\ 'RWUKT<!N<&,(QP*%X-(U+7N0/(;U CG-(/O4YONTBBJ>XF1
MR_?IZ<TV133H1\IS2+3T'L<C%,HCY<TI&&J)%H=(?W-;GA"]:#4HANXS6 ^2
ME3Z1,8=0C/3!KEQ$?=.FC*S/J;2+H3VD?/\ #6E7'^"KS[3:*,YP*["O FK2
ML>M!W5PHHHJ2@HHHH *1_N'Z4M(_W#]* /G7XC_\AM_K7$QGBNV^(X_XG;_4
MUPZ=:]W"ZP1X>*^-DQ^[4<?WS3VZ4Q1@UWQ.9+0E;I20_P"N%#?=HB_U@K*M
M\)K2W/?_ (9'_B5?A7?5Y_\ ##_D%?A7H%?.5?C9[M/X4%%%%9EA5+53ML)#
M[5=JAK'_ "#I/I36XGL?//CB4M=MD_Q5RJ'BNA\:MF];_>KFE^Z*][#?">+B
M'J3TM-/W:/X:[4M#CL(3\U36J[[N/'K5?M5W2\?:DSZUE67NF])ZH]X\#IMM
MX_I7=UP_@L@P1X]*[BOGJ_QGN4OA"BBBL30**** "BBB@ HHHH **** "D(R
M*6B@#BO&>G"XMW(7M7AUQIC'467'\5?2VJVJSVDF1VKR>31"=48[>-U=%.>E
MC&<+NYK>"-'""-F6O3XT$:X K&T&P6"S0XYQ6Y64Y79I%604445!04444 %%
M%% !1110 4444 %%%% !112'[IH XGQ[>@:1+'GG!KYTER;AS[U['\0;TAI(
M\^M>0.,N3[UZ>%C9'GXB=V.0\4K'%1@\T3'E<>M>A?2QPVN[G;> [7?J:L1Q
MFO>[% D('M7D'P^L_P!Y&Y%>QQ#:H%>7BI7=CNH*Q*_->9?$>WWID#M7IIKA
M_'%OYMLYQT%84/C1K55T?/\ */\ 2&'H:9CG%6+I"E](#ZU"/OU[E-Z'ESW&
M,ORUUO@JXV:A$N>]<O(/EK4\+S>7J\/INKFQ*NC;#OWCZ@LCFSB/^S5BL[2K
MA9;&+!_A%:->*SV$PHHHI#"BBB@ HHHH **** "N'^(4YBL#@XXKMR<"O./B
M;<@6. >U:TOC1G4?NGAEV^_4&8^M1 _OZ28YG)IR [\U[U+1'C57J3R.!2VJ
M^=<H/>JUP2#6AH"&6_B!_O48A^Z%*.I[=X#L#!$CXQD5Z%6)X<M5BTR%@.U;
M=?/S=Y'M4XVB%%%%06%%%% !1110 4444 %%%% !1110 4444 %9>MVPGL67
M&<BM2F2QB1-III@>96>A!;]6V<;J]#M;*-($^4=*:NGHK[L5>484"JE*XDAJ
M1JG04^BBH&%%%% !1110 4444 %%%% !1110 5X?\5?^/_\ &O<*\.^*W_(0
M_&NC"_Q##$? >9(>31T.:8/O4]NE?00V/#GN(36YX)&?$L/UK!;[M;_@?_D8
MH?J*YL2O<9U4/B1].VW_ ![1_P"Z*EJ*W_X]X_\ =%2UX![(4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 <CXT_X]&^E?/>K_ /'_
M "?6OH7QD,VC?2OGG5S_ ,3&3ZUZ>"//Q6Y5 XS28I0>U(3@UZ\-SRI[CL9I
M"*,XI">*T,P7DXJ6V'^D#ZU74X-3VQ_?@^]<U;8Z:.Y]!?#D8TH?2NXKAOAP
M<Z2/I7<U\[4^)GNT_A04445!84444 %%%% !1110 4444 %8OB+_ (\F^E;5
M8OB+_CR;Z5</B1,_A/G#Q2/^)PQ]ZRP/ES6KXI/_ !-V^M9.[Y<5[]'X4>+6
MW%7DT\C-1J<&GDX%=D=CE>XA'%/@'[P4PGC-.A/S@UA66A<-SV?X?\6RUZ@G
MW!]*\N^'W-LIKU!/N#Z5X.(^(]G#OW22BD%+7,=04444 %(:6B@",'YJ>1D4
MT#YJ?38$>,"N)\:1;H'^E=R:X_Q<N;60^U;4'[YS5U[I\^ZFFR[D^M4AQ6AJ
MAS>RCWK,S\V*]ZAL>1,LE<QYJ-.E2@YBQ471L5T6,6.89J(?ZY/K4C' J)>9
ME^M8U5H:4WJ>X?#W_5QUZD.E>2_#N7/EK7K0Z5\_B%:9[E#X0HHHK V"BBB@
M HHHH **** "N?\ %S;='D/M705S'CB3R]"D/M50^)$S^%GSOK3;[UOK5!N!
M3[Z;S+MC_M4P\K7T5%>Z>%6=V,/-2J,"F1#<V*>3@XKH1DP9<BO0O -MNDC;
M'>O/5.XXKU?X?0?NE.*X,2]#KH(]<@7]PGTK \4P>;:-Q_":Z"'_ %:_2LW6
MX]]J_P#NFO(I_&=\U[I\T:U'LU:0>]4P*V?$T7EZM*<=ZQ\_+FO<H/W3RJJU
M$S\V*5QA:8.3FI/O"NE?"9Q*@?$R_6O:/AS-N,8S7B[KAP?>O5?AG<9O$3->
M=BX^ZV=V&?O'N Z4M(.@I:\4]4**** "BBB@ HHHH **** .7\<_\@&3Z5\V
MW7^O?ZU])^.?^0#)]*^;+K_CX8>]>E@-S@QA&HS3@*:.*=G%>W$\A[B#DXI\
M8^?%,Z<TZ-L-FFQ,?*GS@4FW:*;))F04KMTI A%&#FED7Y<TUC@4I;<F*3*5
MQH&4J*-O*N%;T-2@XXJ*1?FS6-6.AM3EJ>X_"Z]$L&">U>H@Y%>"?#C4_LSA
M,]37NEK)YENC>HKP,1&TSV*,DXD]%%%8&X4444 %(_W#]*6D?[A^E 'SS\1E
M_P")RY]ZX9!7>?$3_D,O]37"#@U[N%^!'B8GXF28R*8!S3\XIIXKO2T.;H(>
MM.A'[T4WWIT)_>"LZWPFM+<]]^&0QI7X5W]<!\,3G2OPKOZ^;J_&SW*?PH**
M**S+"L_6O^0;+]*T*H:P,Z=)]*:W$]CYO\8<WC_[U<[&.!72>,QMO&_WJYN,
MX KW,,]#Q<0M2;'%-[XIV>*;[UZ4#C88J6W?RKJ/ZU$#WHC^:X4^AK*NM&72
M>I[UX"FWQ)SVKT.O+OAQ+N*KFO4:^;Q'QGOT?@"BBBL34**** "BBB@ HHHH
M **** "BBB@!DJ[XV7U%81T93.7V]ZZ"DP*:=@(K>/RH@OI4U%%( HHHH **
M** "BBB@ HHHH **** "BBB@ IKD!#GTIU9^JW'V>V+9[4TKL3=D>*_$:YQJ
M#J#7G<7S FNH\;WGVC4WY[URD+8XKV\-'W3QZTKR8\#FE WRH/>A_E&:+#]Y
M=(/]H5M/1"@KGN'@*SVVL3X[5Z*!@XKE/!=OLTN(X[5UV.<UXU>5Y'HT5[H[
M%<[XFM_-M)./X:Z/M69J\>^SD^E9TG:1=1:'S5K</DW\O'>LK/.:Z7Q;#Y=Y
M*?>N5#9KVZ+T/*JK4LGF.IM*D\J_C?T-5U.5Q38G\NY7ZU-9:$TW9GT=X*OC
M=6JC.<"NQKS/X93>9#U[5Z97B5%:1[-)WC<****@T"BBB@ HHHH **** (YC
MMB8^@KQKXDWVZ-ES7L5V<6LA]J\!^(5QNE=<]ZZ<,KR,*[LCA5&]LU,BX:H8
M#\M3DX&:]R"LCR)N[(KE>:V_"L!>]C('\584C[QFN]^'6G_:Y@V,X-88F5HF
MU"-V>Y:,-NF0CVK0JM91^5;(GH*LUX3W/76P4444AA1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %>'_
M !5_X_\ \:]PKP_XJ_\ (0_&NC"_Q##$? >8*,DTO4XI%.":7IS7T$-CQ);C
M3Z5N^">/$D(]Q6&PXS6UX)Y\2P_6N;$_"SIPVZ/J"V_X]H_]T5+45M_Q[1_[
MHJ6O /9"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M#D_&1_T1OI7SQJX_XF4A]Z^AO&?_ !Z-]*^>]7_X_P"3ZUZ>"9Y^*W*('.:4
MC)S2_P %"]*]>!Y<A"*0\BG]J8.IK0SZ#.]36W^N ]ZCQS4MI_Q\CZUS5_A.
MBEN?07PW&-)'TKN:XCX=?\@H?2NWKYVI\3/=I_"@HHHJ"PHHHH **** "BBB
M@ HHHH *Q?$7_'DWTK:K%\1?\>;?2KA\2)G\)\X>*?\ D,-]:R,<5L>*?^0N
MWUK*'W:]^C\*/%K;C.]/;D4SO3UKK6QSL&'RTZ'[X%!Z4D'^N%8U7H.GN>T?
M#WBU6O48_N#Z5Y=X _X]UKU%/N+]*\'$_$>QAU[HX4M%%<QU(****!B4M%%
M!1110 AKD_%G_'G+]*ZPUROBL?Z'+]*WH?&<]?X3YXU,XOYOK6;CY\UH:MQ?
MR_[U4L9%?04%H>-/<F3[M,;[]/0\8IC??KH9D+(.*ACYE7ZU.3E:A@'[\?6L
M*A<-SV+X= ^:E>OCH*\D^'@_>)7K@Z5X&*_B'N8?X HHHKF-PHHHH **** "
MBBB@ /2O/_B%J 7298L\X-=^WW3]*\5^(]XP>2//'-;4(WFC*M*T3R1B6F8^
M]3J?EQ4,8R2?>I:^BIJR/#F[L?;C#$TDGWB:>#M%-?D53T,T]0MANG KVWP!
M;8LU..U>+::NZ]4>]>_^!K?;IPX[5YF+GH=^'5SLHONBJVI+NMG_ -TU;B'%
M17:YA?Z5YB=I'?)>Z?.OC&#;J$IQWKEQ]RN\\<0;;F1L=ZX0?=KVZ#T/*KJS
M$0<4Y>*!UIKG!KK3T.=#)5[UW'PYNO)U1<GO7%/RM;?@^X,.ICGO7+B5=6.N
M@]3Z;M9?-A#"IZRM!E\VP5O:M6O!DK.Q[$7=!1114C"BBB@ HHHH **** .8
M\<_\@&3Z&OFVZ'^D.?>OI'QU_P @&3Z5\X7/^N?ZFO1P.YY^,(#S2]:1:5>M
M>Y$\I@?NXI!Q2YYH-.;L2T&TDYI#R:N00^9$2!5:2,QMS6?,5;08_04B\"E?
MD4'[M4"';?XJ8XW"K( ^S^]0#[I!J9ZH<'J;7ABZ-O>1\X^:OH?0;P3V40SG
MBOF73Y#%=(1ZU[OX%OO/C1<]!7C8JGU/2PT];'?BBBBO./2"BBB@ I'^X?I2
MTC?=/TH ^??B(/\ B<.?<UP8Y:N^^(W_ "%9/K7!1]Z]S"OW4>+B5[[%-!YI
MQZ4Q#S7HHXQ3]W%$/^L%(>M/A_UHK*LO=-Z2U/>_A@,:5^%>@5P/PS_Y!?X5
MWU?.5OC9[E/X4%%%%9%A5'5O^/"3Z5>JEJG_ !XR?2FMQ/8^=?'*?Z8W^]7*
MH.!78^.%Q=-]:Y&,5[6%>AX^(W%/3%'\.*3^*@GFO2BSC: #BE3Y'!-*.M)-
MQR*FJ[H5-ZGJ?PYOPEP 37LT+^9&&KYO\%ZA]GNQD]Z]]T6^6>U3!YQ7S^)A
M9W/<PT[JQKT445R'4%%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !7-^+YO)TUFSCBNDKB/B!=!-*8 ]JNFKR1
MG4=HL\*UUS/>LV>]9 &'%:5RXD<DU188>OH*2LCQ)OWATW*5:\.VQFOEX_BJ
MHW(Q73^"+3S;X$CO45G9&],]V\,1>7I40QVK? XK-T>/R[)%]JTQTKPZCU/2
MI+0.U5+U-UK(/:KE0W S P]JF+U+DM#Y^\<VVR>1L=ZX$)@UZS\0+3ACBO+W
M4 XKV:+NCRJRU&J,"H7_ -<#4_1*BQDYK>K&Z,(O4]>^&%Z(UVDU[#&V^,-Z
MU\]^!+TPSJN>IKWW3WWV<;>HKQL1"S/7P[O M4445S'0%%%% !1110 4444
M5K\XLI3_ +-?.OC=C)>2CWKZ)U'_ (\)O]VOG#Q5(#J4P/K7;@U>1RXGX3F8
M1@8I\AR,4B_>HZO7M11Y$MQJH<5Z]\)(!AB17E"XW 5['\*DVH:X,:_=.["K
MWCU0#'%+117CGIA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !7AWQ6_P"0A^->XUX=\5C_ *?^
M-=&%_B&&(5X'ER\L:D-,AZFGCK7OPV/$FM1'^YBMKP1_R,D/UK$;K6YX)'_%
M20_6N?$_ SHPWQ'T_;?\>T?^Z*EJ*V_X]H_]T5+7@'M!1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110!R?C$?Z(WTKYZUC_ )"$GUKZ
M$\9'%HWTKY[UC_D(2?6O3P1YV*W*(/:E)P<4JKWI&'->O#<\R8$TAHZT=:T,
MP(^7-/MO]<#28R,4Z 8F%<U78Z*.Y]!?#<YTD?2NYKA?AM_R"1]*[JOG:GQL
M]VG\*"BBBH+"BBB@ HHHH **** "BBB@ K%\1?\ 'DWTK:K%\1?\>3?2KI_$
MB9_"?.'BG_D,-]:R0>U:WBD?\3=OK64!QFOH*.QXE;<1Z <4[[U,/6NI'./)
M^6D@_P!:*!SQ3H!^_ K"J]#2FM3VCX?<VRUZC']P?2O+_ '%LHKU"/[@^E>'
MB=SV*&P^BBBN4Z0HHHH *0TM(: 8F:44VG"F2F!KF/%&#92_2NG/2N/\73;+
M60>U;8?XS'$?"?/FK_\ (0F_WJJH,U:U7F^E/O51#BOH:+T/%GN)G$F*>_6F
M 9DS3GZUN0-W<41#]ZI]Z&&*=#_K%^M8U=BH;GL?P\^^E>MCI7D?P\_UB5ZX
M.E?/XKXSW,/\ 4445S&X4444 %%%% !1110 C_<;Z5X%\1Y?]/D7ZU[Y)Q&W
MTKYT^(DV[7)$SW-=6%5YG/B7:!Q,(^4U(HI$&WBG=*^@@M#PY;C2:<O-&W-(
M?E%.>PD7=%3=JBCWKZ)\'Q;-/ QVKP/PS#YFIH<=Z^B/#D?EV:CVKQ<4]#U<
M*C: Q4<XS$WTJ6FR#*'Z5P+<[&M#Q7Q_!M\QL5YAT4U[%\0(,P.<5X\XPY6O
M:P[T1Y-=:D8:D)R:5A@TJKFN[H<HX<K5G0)?+U,?6JOW:DLOW5R']ZPK*Z-Z
M+LSZ:\)/YFE(?:N@KE/ DOF:&ASVKJZ^?J?$SVX?"@HHHJ"@HHHH **** "B
MBB@#F/'/_(!D^AKYMNC_ *0P]S7TEXY_Y ,GTKYLNO\ CY;ZUZ.!W.#&$;<8
MI3P*&&:.O%>W$\EC2:"?DS1CG%*P^7%$P-[18/.@Q577+8VS#C%:_A5-\J)Z
MFKGCK3OLZQG'45R2J)2L;QIW5SAT.12]\5&#MJ3MFNA/0R:U)5;C;4,IVR8I
MZGC--(WOFG+X28[CU.Q@U>L?#"^WW&TGI7D[#Y:[/X>7WV:^Z]ZX,3"\6=F&
ME:9]#@Y&12U5L)?.M5?UJU7BM6/904444@"D?[A^E+2-]P_2@#Y[^(Q/]KR?
M6N#0\UZ#\1T_XF<C?6O/HAG->WAOA1XV)7O,>YIBG!J4KFD"5Z<3B$/3-+#_
M *P4['%)$/WHK"M\)M1W/?/A@<Z5^%>@5P'PQ&-*_"N_KYRM\;/=I_"@HHHK
M,L*J:B,V;CVJW45PF^%E]::!GSQX_0I=GCO7&]%%>D?$VS\J?..]>;9[5[.%
MU2/(Q*]X3-!I2.*D5,K7IHX]QBFG-\RFFGY6Q3_X:F;(2LQVF79MKD$''->V
M>"=8\X(K-7A"C$F?>NX\+:N;65?FQ7EUZ?,CTL/.Q]$HX<9%/K'T&\%W8J^>
MU:^X>M>3)6=CTXNZ%HHHI#"BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** &N<(3[5Y1\0[[_ $=TSTKU:;B%_I7A/Q#N
MOWLB9[UT8=7D<^)=HGG?FEGI']:9"-W-6A'E,U[U/X3QG\150Y;%>D?#ZTW7
M0..]>=(O[\#WKU[X=6W[Q3BN7%2LCKI*[/5;1-D*BK0J.,84"I:\63U/3@M
MIC\H13Z8W2DAR/,_'MKFW8X[5XK<C;=,OO7O_C:'=:-QVKP74T\N];ZUZN&>
MAY5<J.><4 ?+2XW<TO1<5Z#5T<BW-KPS<&&^C&?XJ^D=$D#Z9"<]J^8='?9>
MQG_:KZ&\)WGG6<29Z"O(Q<7<];"RT.JHHHK@.P**** "BBB@ HHHH I:HX73
MYLG^&OF7Q9+_ ,32;']ZOH7Q/>?9[.09ZK7SAK[^=J,I]Z]#!*SN<>)DK6,]
M#E,U,!QFH8AQBI>G%>TMCRGN-1R;E5]Z]Q^&$96'..U>'6R;M2C7U-?0G@&V
M\FU4XZBO*QKT/0PFYW5%%%>4>B%%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %>&?%<_P#$Q_&O
M<Z\-^*RYU'/O71A?XAC7^ \P7@T\\"D49-+UXKWX;'ASW CY<UN^"!_Q4</U
MK!)XQ6[X)/\ Q4D/U%<V(^!F^'^)'T[;_P#'M'_NBI:BMO\ CVC_ -T5+7@G
MMA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!R7C,9
MM&^E?/.KG_B8R#WKZ(\9?\>;?[M?.NK?\A.3ZUZ>"/.Q>Y #QBD:FK]ZE;[U
M>O \N8@XH'!H-!K4@>#BG0',XJ,_=IUO_K1]:Y*WPLZ*.Y]!?#;_ )!(^E=U
M7"_#;_D$CZ5W5?/5/B9[M/X4%%%%06%%%% !1110 4444 %%%% !6+XB_P"/
M-OI6U6+XB_X\F^E7#XD3/X3YQ\4_\A=OK64#\N*U/%/_ "&&^M9(ZBO?H_"C
MQ:VXY>*:U*U#<BNM['-<:AP:D@;]^#41!Q3X ?,%<]38U@]3VCP"_P"X6O4X
MS\B_2O)_ &?(6O5HON+]*\/$;GJX=Z$M%%%<QUA1110 4AI:0T Q*!12]J9(
M'I7 ^.9=D+\]J[PG KS3XA7 5&&>U;X=>^88A^Z>+7S;[N3ZU6 YQ4DC9N7)
M]::/O5[]/1'C3>H#@TA/S4I'-( =U;$L<PR*;$<2K]:D(XJ%>9T _O5A4>A=
M/5GM'P]3YHS7K(Z5YIX M2MM$Y':O2QTKP<2[S/:H? %%%%<YN%%%% !1110
M 444AH8%/4KD6]NS$XXKYN\:S^?K[MG/->]>+IS!IS$''%?.>N2F;5&8^M=V
M#CK<XL7+2Q2/!IK'FG-4?>O=@>.R53D5'*:<O%1OUJ:FPXK4ZSP9%OU"/CO7
MT%I,>RW4>U>%>!(=VH1GWKWZS3;"OTKPL0]3UL.M"U3'^Z:?36Z5R(ZV>=>/
M(<V;'%>&W/RW)^M?07C:#?8-]*\ U-=EZ1[UZ^%EH>;B$0-\QIZ# IJ=*<>*
M]/H>?<9)UIRG&WZTU^:,X K"IL:4WJ>^?#R^']E1QYKT$<BO&OA[>',:9]*]
MD3[B_2O K*TCW*+O$=11161J%%%% !1110 4444 <OXY_P"0#)]*^;;H_P"D
ML/>OI/QS_P @&3Z&OFJ[_P"/MOK7I8'<X,6!.!3$/-+)T%-7K7MP/):U'9^;
M-*QXS330WW*530?4[#P7\U_%]:['XA6/FVL; =%%<=X'_P"/^+ZUZIXILOM&
MF*<=$KR,1*U5,]+#QO39\\W"[)2OH:>OS(!5C5X3!>2 ^M00#O7H0E=''5C8
M0\#%21K\F:9)]^ITQY1K5F*(&;@BM7PY<FVO%.<?-6,<DFIK>0Q3(1ZUS55=
M'11W/IKPS>>?I\?.>*Z&O.? FH>;;1)FO1NU>'6CRR/8IN\0HHHK(T"D;[I^
ME+2-]T_2@#P;XC_\?\GXUYQ"<9KTCXC#_B82?C7FT?WC7MX76*/'Q7Q,GS2D
MX%1L>12L<@5ZBV.$=FB(_O@:;_#21?ZP5SUOA-J.Y[_\,CG2_P *[^O/OA?_
M ,@K\*]!KYRK\;/=I_"@HHHK,L*.M%% 'D/Q5B!8$"O'3Q(17M_Q-@,BYQTK
MQ*5<3L/>O9P3]T\K%?$QQ^[3D;"TA'R5'D]*]3H<*"0Y?-.SD4T@]:%Z5FU<
M3&$<U:L[DQ2C![U7QUI@RKYK&4+FT)6/;/"WB58-.5"_ZUUEMXB67^.OGRSU
M26$!0W%=5I6MN,9:O-JX?6YZ-.MI8]VL+L7 R#5ZN#\-ZXGE_,U=*NLQ'N/S
MKBE3:9U1FFC7HJG;WJ3' -7*AJQ84444@"BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@".XXMY/]TU\Y>/KC?J<R9[U]!ZG<K;VLA8
M_P )KYH\87'G:W,0>,UUX1>\<>+=HF)!PE6E<!#59!B.C<=M>Y#2)Y2=V/A^
M:[0>]>Y^ ;;RXT;'45XCID1FOH\?WJ^AO"%MY5E$<=J\_%O0[Z*U.M'6I*C%
M/%>2SO@+3&I]-H0Y'->)[;S[1N.U?/OB*+RM0D7T-?3&HPB2W?(_A-?._C&W
M*:K+QWKT,++H>=7B<[%]RFOQ2QG"TC\FO86J.#9DUB^RX3ZU[GX#GWH@SVKP
M2-BLRGWKVCX;7(D=5S7FXQ:'H866MCU>BBBO(/2"BBB@ HHHH **** .%\=R
ME+=@#VKP+4#F\D/O7NGQ"?;$?I7A5Y\UT_UKT\)L>;BMR!.#FG?Q9I,<4X?=
MKUEHCSNI+IZ[M5B/O7T5X-(^QIC^[7SUI*;M0C^M?0W@^)H[1,_W:\G&GJ81
M'64445YAWA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !7A_P 5?^/_ /&O<*\.^*W_ "$/QKHP
MO\0PQ'P'F*G!-+T-,'+4]AQ7T$-CQ)[C6]:W/!'/B2'ZBL1_]76YX&_Y&*'Z
MBN3$OW6=&'^)'T];?\>T?^Z*EJ*W_P"/>/\ W14M>$>T%%%% !1110 4444
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
MQSU1Z^$6A:HHHK@.P**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH *\/^*W_ !__ (U[A7AWQ6_X
M_P#\:Z,+_$,,1\!YA%RQJ0BHD^5C4A/%>_$\2IN,;TK<\$\>)(?J*PSTS6]X
M)'_%20_6N;$_ S?#/WCZ=MO^/:/_ '14M16W_'M'_NBI:\$]L**** "BBB@
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
MU.;I7OQV/$GN(?6M_P $_P#(QP_45@_PUO>"3_Q4</U%<V)^!F^&^(^G+?\
MX]X_]T5+45O_ ,>T?^Z*EKP3VPHHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH Y+QG_ ,>C?2OGK5_^0A)]:^A?&?\ QZ-]*^>-6/\
MQ,9/K7J8+8\_%;D"_=H/2F*>U*QYQ7L1/*EN"]#3>]+TI#Q5DW!1EJEAXF%,
MZ#-+"?WHKFK[&]'<^@OAM_R"1]*[JN#^&G_()'TKO*^<J?$SW:?PH****@L*
M*** "BBB@ HHHH **** "L3Q'_QY-]*VZQ?$7_'DWTJZ?Q(B?PL^</% _P")
MNWUK*'2M7Q1_R%W^M9(-?047[IXM;<>G2DSS2]*:W KK6QSRV$!YIW6F@4IZ
M5+(ZAYA0\4QY22*1N>::!D5FX'1!V)O..*/..*A49-. YK"4-2W.P_SCBD\P
MFFD<T <TX1U$YDBL<4@&3S0>*#Q5\I',"CYJ7'S4=!FE[9K2*)<AP44D@]*5
M3Q3B,BM24,BZT2T+P34>[<^*!LL*H\G-5V/:K*GY<52?/VD*.]<E:>AO2C<Z
MWPCIYN;J,XSS7T)H]J(+*/ [5Y9\.-+\Q5<K7L4*;(E7T%>+B)W=CU:,+*Y)
M1117,= 4444 %%%% !1110 5YI\4Y?+LQ]*]+KRKXM2#[(,&MJ'QHSJ_"SQ6
M;YY":>GW:C/(IXX6OH:1X57<&'S4C<4HY&:8QK:6QFA^,LOUKU+X?VX\Y&Q7
MEL/S2J/>O8O ,6"AQ7DXF1UT%J>JP#$8J0GFF)PHH)^:O*>K/6B]"2DI>U-I
M%,6L#Q1$)-,<>U;QK)U]=VGL/:KAN93V/FGQ%'Y6HD#UJF,!*V?%T6W42<=Z
MP0W%>[AGH>166HAY-2IQ3%&32@_-BNR1SBR=*ZCP7/MU.%<]ZY=_NUL>$IMN
MMP#_ &JXL2KQ.G#/WCZ>LS_HD7^Z*GJI8,&LH?\ =%6Z\!GN(****0PHHHH
M**** .7\=?\ (!E^E?-EU_KW^M?2GCG_ ) ,GTKYIO3BY8>]>A@=S@Q8B\BA
M1S3%.*>>*]R.QY+W'CK4<WW:=GC-))S'FE(JF;G@[_D,0_6OIJQ_X\HO]T5\
MT>#1_P 3:'ZU]+V/_'E%_NBO"QOQGLX7X2Q5>[@$\14^E6*1ONFN$ZCYW^(%
MEY.HR,!7$6YW UZU\1[')DDQZUY);_*6!]:]K!O0\?$1]YE@@8J(=:65L$4$
M?*#7HK<Y1C=:E/RPYI-N122G]R165570)ZG;^ ]2:*XC3/!->^V4HDMD(/:O
MF/PK<>5>1\]Z^A_#EUY]JG.>*\7$PUN>KA9:6-ZD/W32TA^Z:XSM/&_B,O\
MK#]:\CAZ-]:]?^(HXDKR&,8W?6O=P[]Q'CXGXAR]Z5>M,!P:>>!FN^&QQ/<!
M]ZG1?ZX5'GO3HC^\!K'$+0VI;GO_ ,,O^05^%=]7G_PP.=*_"O0*^=J_&SW*
M?PH****S+"BBB@ HHHH K7EL+B(J:\I\7:'AW*+7K]8.JZ4+O=E<YK2G+E9G
M4AS(^8M4M)()SE>]0VS=C7HGC30?L\C%4KSC8T4C#'>O8HU=+GE5:=G8MR@;
M>*@ZTP2EN#4L0R:Z5.[,+60[&$I$Z4Z3CBFK]VMD9RV'9S1Q46[FAF(JD2D3
M#%+WJ$-Q4J\KF@=M!C'YJ=VIK#O0#0(7 I'Z4@/- Y:DE<!<?)3D'R&F^U&<
M<4FBTR,]:DM9/*?(ICC%(M<\X7-(3U.OT'7)$N%0L<9KW'PUJ"SV2Y;)KYKM
M9?(</7K7@C6=YCC+5YV)IZ'HX>>IZW13(V#("/2GUYIW!1110 4444 %%%%
M!1110!6OGV6KMZ"O!OB'=^;.1GO7N>L-LTZ4^U?.?C&X\V[<9Z-7=@XW9QXJ
M5D<Y'UI6Y.*9%4B<O7LP5D>5>[$B&7VUZ]\/K,&%6(KR*WYOU3WKW7P%;[;-
M3CM7'BI:'91CJ>A0C$:CVJ6HT^Z*DKQ7N>G'8****104AI:;WIB8H%(PXIU(
M:0/8X7Q[:AM)E?'.*^>V!2=@?6OI7QE%YFD2#':OG'4H_)O6'^U7JX-Z'F8E
M:C<?+4:]:<3P*,8&:]*7PG%'<TM(E\NZ'UKZ&\&OOTE3[5\U64VRY'UKZ+\!
M2A]%7GM7D8M:'JX9G74445YYV!1110 4444 >,_&#[ZUY-'TKUCXP_?6O)5/
M%>U@O@/)QGQ$C],TA_U5*WW*:W^IKMJ'' ZWP/\ \?L7UKZ*LO\ CSC_ -VO
MG;P(,WD9]Z^BK/\ X](_]VO$QGQ'KX3X2>BBBN,ZPHHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M KP_XJ_\?_XU[A7A_P 5?^0A^-=&%_B&&(^ \Q3J:!UIH.#2GCFO?CL>)+<1
MNM;G@D_\5)#]:Q''R9K:\$<^)(?K7/B%[C.C#+WCZ@MO^/:/_=%2U%;?\>T?
M^Z*EKP#V@HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH Y+QG_QZ-]*^>=7'_$PD/O7T+XT_P"/1OI7SYJY_P!/D^M>I@=C@Q134=Z"
M.<TY3Q1FO8B>3(:1FF]:?GBF#K5HCH.Z\4Z$?O@*8O!S4D',XKFK['30W/?_
M (:C&DCZ5W=<-\-_^02/I7<U\Y4^)GNP^$****@H**** "BBB@ HHHH ****
M "L3Q%_QY-]*VZQ/$?\ QY-]*N'Q(B?PL^<?%'_(7?ZUD@=ZUO%'_(7;ZUE#
M[M>_0^$\6MN*.:#\W%(O H4\UV+8YA<=J,=J#2CK18CJ1D8XH44]AS3:=KHU
M3$VX-+C'-./(I#TQ6,D%[C2.]*HXS2]L4O08HB@N)UH(S0O%+3DK$W$ZC%+V
MQ2#K2]\U41@..*5GQ2'K4<O)I@D/4TFW#9H6G/\ =K.4K%V&^9AJN:99F\U&
M,8SDUFJ"TF*]!\%:,9KN*4KD UY]>>AV8>!ZGX,TO[#:KE<9%=C56S@6&WC
M&,"K5>1)W=SU(JR"BD- J2A:*** "BBB@ HHHH CG?9"S>@KQ/XD7_VH,F>E
M>S:B=MA*?]FOG?Q=<F2\E4GO75A8WE<PKNT3CP<MBI2/EJ%?];4[?=KW:>QX
ME1WD"?=IA6GH?EI,YK6;T(ZCK5/WZ?6O=/ ]KMMXWQ7B5@N^Y0?[0KZ#\'0A
M=.B..U>/BCNPZU.M XI-N6IU**\VYZB0M%!HI%#:HZG'YEJRU?J"Y&8S51W,
MY;'SSXZMO+U \=ZX\+7HOQ#AQ?$X[UYZO)->[A=CQZ^XBC%(1@YI],D/%=;.
M84\K5G0I?)UF%O1JJJ>,4MIE-0C;T-<U=7B=%#25SZ>\-WGVFSCYSA:WZX3X
M?W!FM5R<X%=W7@5%:5CVX.ZN%%%%06%%%% !1110!R_CHXT&3Z&OFJ[^:X8^
M]?2GCO\ Y $OT-?-EP/W[_6O1P)PXLC44_KQ31P*<O!KVH'D,,<8I&^[BG=Z
M3OFE,=,Z'P>-NK0_6OI2Q_X\HO\ =%?-GA/_ )"\'UKZ3L?^/*+_ '17AXWX
MCV<)\)8H/2BBN$ZS@O'&G>=8R-BO KV+[+<E>G-?4>O6HN+!UQGBOG+QC9FU
MU,C&.:]+!SZ'!B86U,4C?@T]^% I(ONTDC5[">ESS&.!^6DD7,= /RT\G,53
M/4A;AI<_D72\]Z]^\ 7GVBW'/05\[KE90PKV3X8ZAM3:37F8J'NGI866IZ_2
M'H:2-MZ ^M*>AKRCTSR/XB)\DAKQY.K?6O8_B(X\N05XY'U;ZU[>&?NH\?$K
MWF)MYI>O%+FD7@UZ$#B$QS3HO]:!0.N:(_\ 7BLJ[T-:6Y[[\,1C2OPKT"N
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
M8%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %>'?%;_ )"'XU[C7A_Q5_X__P :Z,+_ !##$? >
M7#AJ>W2D498TXBO>BSQ)[@?N5N>"/^1CA^M8)/:MSP2?^*DA^M88GX&;X?XD
M?3UO_P >T?\ NBI:BMO^/:/_ '14M> >V%%%% !1110 4444 %%%% !1110
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
M_P!T5\Q^%VVZS /]JOIO3O\ D'P_[HKQ<;\1[.$^$M4445PG6%%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %>'_%7_ )"'XU[A7AWQ6_Y"'XUT87^(88CX#S!3AC3R<5&O+4]A
MQ7O11XD]Q&'RYK:\$<^)(?K6*Q^3%;7@?_D9(?K6.(^!G1AOB/J"V_X]H_\
M=%2U%;?\>T?^Z*EKY\]H**** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** .1\:?\ 'HWTKY[U?_D(2?6OH3QI_P >C?2OGG5C_P 3&3ZU
MZ>!//Q1 O2CM3%/-*QYKV8'E2%[4P=:4FD/%7L1T'BGVW_'P/K49/RTZV/[X
M5RUMF=%#<^A/AS_R"A]*[>N&^&YSI(^E=S7SM3XF>[3^%!1114%A1110 444
M4 %%%% !1110 5B^(O\ CR;Z5M5B^(O^/)OI5P^)$S^$^<?%/_(7;ZUD_P -
M:OBG_D,-]:R1UKZ"C\*/$KZL5!@&A.IH;BD3K78MCF9)WHIK&C/RU+T0D-8\
MTUFYI&R1FH@236$I:FO+H6@>*:QIJ9I#DFI<P4;LDS\E(/NTSGI2\YIQD.4=
M!Z4\5'T-.8X%;Q=S)H4T4G:D)XJY$=1?XJ<H'F+]:8.F:1&_>K]:QJ:(VCJ>
MM_#NQCG<;A7J]M81P'*BO,?AFXWCFO6@<BO Q3?M#V\,ER"T445RG0%%%% !
M1110 4444 %%%% !112$X&30!Y%\5)=D@%>1L<MFO2_BY<#[2H![UY>3\H->
MU@U[AY.+?O$F,U'_ !XJ1>E1G[]>C%:GGL7'S"E?G%*P^7-1*<M6KV")UWA&
MY%M-G..:] _MM1&/F_6O(K2[-MR#5TZV^,;C7!6A<Z82LCU1-=7;][]:/[=7
M^]^M>4?VZX.-QIXUU\_>-<SI6-G4/5/[<4#[WZTU==7/WOUKR]]<?'WC3%UQ
M\_>-2Z>@*H>IOKB@?>_6FIKRY^]^M>8RZV_E_>-5TUU\_>-$:>I7M-#TG6=4
M6:S<;NU>5WK!KAC[UJ2:NTMJP+&N>:0O(3[UW48V1R5'<D8XQ4O'EU6)S3MY
MQBNI[&(\GBH6IRG)H8?-4,:-OPU+Y>H0C_:KZ6T<YTN$_P"S7R[I,GE:G!_O
M5].>'Y5?2(,'^&O#QRU/8P;]TU:***X#M"BBB@ HHHH Y;QY_P @"3Z&OF^;
M_6O]:^D?'(SH,GT-?-MSQ<,/>O1P.YP8S8C7H:5>O--/%*>!7MQ9Y+'=Z8QY
MI2>*B<\9J9[! Z+PH?\ B=0?6OIBP_X\8?\ =%?,?A!LZU!_O5].6'_'C#_N
MBO!QGQ'LX/X2S1117&=@4R1!(A4]Z?10!XE\4[%8Y@RBO,XR.E>T?$VU,RE@
M,X%>(L6CN'4]C7KX27NH\O%1]X=G]Z:0_?IN?FS3STS7IQV//8C??!ID_(XI
M_P##FD0;P:51:%4]SI/!%X;>]'/\5?1.D2>;IR-ZBOF'1IOLUZAZ?,*^D?"\
MXET6(YYQ7C8R-CUL.[G(>/\ 'V62O#G'[QOK7MOQ ;_1Y/QKQ-N9&^M=N%C[
MJ./$/WK$D1^4U&OWS2@X%-[UZ"1QM#A]ZB/_ %XH/ S21?ZT&N>N]#2EJSZ
M^&7_ ""OPKOJ\_\ A@<Z5^%>@5\]5^-GNT_A04445F6%%%% !1110 4444 %
M%%% !1110 4444 %!Y%%% %.6QCD;)%5GT>%NJBM6BG=BLCS3Q-H:^>=B_I7
M!ZGH3YX7]*]UOM/6Y;)%9,_AU)/X!733K\J,)4KG@%WI$L()*_I6+/&T;<U[
MGXB\-K% 2J=J\HU;3'25@$/Y5Z-&MS(X*M+E=C%C;]WBG+TJ$HT<FT@U)G!K
MNC+0Y90T) *#1VICFM#$6/F2AQ^\IB'#9J7J<U#5V5<CDXKJO!UTT-W& >IK
ME9.M;?AJ39?19_O5QXB.AV8>1]+Z4V_3XF/<5=K.T1PVF0X/\-:->$]SV%L%
M%%%(84444 %<OXRN532)!GM73GI7F?Q!O_+M)$SZUK2C>1G5=HGBFJR^9>,1
M_>JOU%,=S+*Q]ZD4<5[])61XM26HY#6KH<?FWH'O6,&^:NB\)1&74AQWHK;#
MI[GO/A6$1Z:H]JZ)>E9.AQ^79**UJ\"I\3/4I[#Z2BD-9FPM.IHHH&F.HI!2
MTB@I#124Q7$/2LG6XA)I\H]JU35*_7?:NOJ*N&YSU=CYQ\40^1>/QU:L1""*
MZ_XA6Y@N<@=37$QMQ7NT=D>3+<E)PU56<B?-2N:@<'K6T]BH,];^'EX0J+FO
M:8#F%3[5\^> +G;/&I/>OH&T.;6,^U>'BE[QZN'=T34445R'0%%%% 'E?Q27
M*UXLV/.:O;/B>I*5X?(<3M]:];"?">9BMV/_ (J,?-3<TX=,UZ;^$\_J:?A]
ML:];C_:KZ@TS_D'0_P"Z*^6= ;&OV^?[U?4FE.&TZ#!_A%>)C?B/7P?PEVBB
MBN$[ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ KP_XK?\?WXU[A7AWQ6_Y"'XUT87^(88CX#S
M"'J:D-1+PU/8\5[R/$GN-:MWP2/^*DA^M8A'R9K=\$#_ (J.'ZUAB/A9OA_B
M1].6W_'M'_NBI:BM_P#CVC_W14M> >V%%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% '(^-/^/1OI7SUJP_XF$GUKZ&\9C-HWTKYYU<
M_P#$QD'O7IX(\_%%51WH(YH4\8I2:]>)Y<A,9I"*=G%(36AF(.>*? ,3"HUX
M.:E@YF%<U;8Z*.Y] ?#;_D$CZ5W5<+\-O^02/I7=5\[4^)GNT_A04445!844
M44 %%%% !1110 4444 %8GB/_CR;Z5MUB>)/^/)OI50^(B?PL^<_% _XFS'W
MK' XS6QXG/\ Q-6'O6/GC%?04/A1XE;<7[PIT:Y--7@4Y6VFNZ.QS,5ASBF-
MPM/W<YIA^8XJ*CT*IHF@@,B=*&M"IZ5TF@:4;F,?+G-= WA1FP?+_2O,K5>5
MG9&FY(\]^S%1TI4MB3TKT%_"C8_U?Z4L?A1A_P L_P!*Q5=&BHL\]>U([4PP
M';NQ7HLOA1B/]7^E4=0\--;:?)(4Q@>E7&LARHNQP:C.?:CJ::K8E=?0TJGY
MJ]&B[HX9JP[%(1Q2TAZ5T,Y^H=%IB?>S4@Y&*3;M!KGJ;&T#TGX<WVRYVY[U
M[=;/OA5O6OF_P7=_9[T<XRU?0^CR>;I\;>HKQ,6M;GLX5Z6+]%%%<1UA1110
M 4444 %%%% !1110 54U"7R;1W]!5NLO7SMTJ4^U-;B>QX3\0;S[;=GG.#7%
M*,C%;?B6?-Y("?XJQH>>:]_"Q]P\7$N\@SCBFCEZ1SAJ%/.:[8G,T2GIBHL;
M34N:8W)JWL0G85S\M1G.*<>11VQ7/:[+YAFTXS2J#C-/[8I.@Q4R@7S!RPI
MIS2H:<>*EP%S.XQLL,5&$.ZG@_-FG]\U/)J5SC@V$VU$$P:=U.:D'2NB$;(S
MDR-ABD*_+3FYHZC%:$B(.,T_&3FD!P,4N:5A=1UNWEWL3>AKZ!\#ZG]IM8X\
M]!7SUTE4^]>P_"^8O* 37D8V&EST\'+H>NT445Y)Z@4444 %%%% ',>.?^0#
M)]#7S9=_\?#'WKZ2\<_\@&3Z5\VW?^O?ZUZ6!.#&$?6CKQ2*>*7I7MQ/(D)U
M.*CE&!4@^]FFRCY<U-0<#8\('&M0?[U?4%A_QXP_[HKY>\(_\AN#_>KZAL/^
M/&'_ '17@XWXCV<'\)9HHHKB.P**** .6\6:;]KM)&QG KYYUJS^S7T@QWKZ
MDU&,/92@CM7SSXTM?)NY&QWKOP<];''BHZ7.1Q\N:4<C%)GY*13@U[=/8\B1
M-M_=FF0#&:D!RE,4[<TYBIO4%?RKA#[U[OX$U3S;*.+/:O I#EQCUKTWP!J'
MES(A:O.Q=.Z/0H3Y6=#\0/\ 425XQMY8^]>Q^-G\ZS=O:O&G?8[+[UOAE:*,
MJVLK@!DTNVB.E)Q7<MCC;U CBF1#]\!3\\4R(_OQ7+7V-*6Y[_\ #$8TK\*[
M^N ^&1SI7X5W]?/5?C9[U/X4%%%%9EA1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %)@>E+10!EZM9BYBVX[5P]_X4$S,=GZ5Z60#UJ-H$(/ K6%
M5Q5D9RIJ3N?-/B31_L5VP"XQ7-X^>O:/&NB>;(\@3]*\COK8VTY!&.:]:A5Y
MDCSZ].Q"1Q3"N:"W%(&KT(.YYTE9B;<4\&DSFEQ56)>Y&_+5>TN7R;V(_P"U
M5,CG-.A;_2X\>M<>(6AU4'J?2GA2\\ZPB7/:NGK@/ DI:WC&>U=_7@U%:1[4
M'=!1114%A1110 C?=->)?$>[_?R1Y]:]DO9O)A+>U> >/;GSM1?GO73AE>1S
MXAVB<-$G+?6IL84TD70TI;->_36AXLM652?WGXUZ/X&T\-<))CK7G9C_ 'BG
MWKU'P5<+$$!K&O\ ":P9[!8J(X *N*PKG$U557&ZGC6%'\5>+*#;/0IR.BW#
MUH+#UKG?[97^]3CK"@?>J.1FW.CH 12[AFN?_ME<9W4#65Z[J7(QJ2.@W"E+
M"N>_MA?[U!UE?[U'(PYTC?W#UHW#UKGAK*D_>H_ME<_>I\C%SHZ D5!-AHR*
MQO[97.-U1OK*YQNIQ@[F<Y)H\W^)MJ-^<5Y>B_,17JOCZX%R,CFO+B-LIKV\
M,GRJYYE3<3;EL4KP\4*WSYJ0N#71-&<7J;OA"?R-4A3/4U])Z>VZQB/^R*^6
MM%F\K5X6ST:OI'PY?"YLH@#G"UX>,7O'K826EC=HHHKB.P**** ///B)!YD#
M'T%>"W"8O''O7T)X[Q]F?Z5\_P!YQ?2?6O5P;]T\S%[D2KEL4A.'VT]>&S41
M/[W->IT/.7Q%S2SY6L0MZ&OI+PM>?:+&,9Z+7S/:OC4(S[U] ^ 92]LO/:O'
MQBZGJ81]#NJ***\X] **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH *\/^*O_(0_&O<*\/\ BK_Q
M_P#XUT87^(88CX#R]1EC3R,TU3AC3B:]V)XD]QI/&*W?!)_XJ2'ZU@L.,UM^
M"?\ D9(?K6.)^!G1AOB/J"V_X]H_]T5+45M_Q[1_[HJ6O /:"BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#E/&/\ QZ-]*^=M7_Y"
M4GUKZ'\9G_1&^E?/6K_\A"3ZUZ>"//Q6Y27K2MUIRCBC%>O!GERW&&@TX]*:
MO)K5&0'[M/MO]:*0TMM_KQ7-6UBSIH;GT%\-O^02/I7=5PWPW_Y!(^E=S7SE
M3XF>[#X4%%%%06%%%% !1110 4444 %%%% !6)XC_P"/)OI6W6)XC_X\F^E7
M3^)$5/A9\X^)_P#D+M]:R!UK:\3C_B:M]:QU%>_1^$\2L*PY%-EZ#%2$<4P?
M,:[%L<X@^[3H>9!2E>*(O]8*RJ;&M)'KG@2P6:!6(KTU-*AV#Y>U<;\-X0^F
MAO:O1%X%>!B9WE8]FA"T3/\ [*A_NTO]E0_W16A17-=F]D9QTJ$_PBL3Q5ID
M2:#.57G;765D>)$\S1IE]13C)W%)*Q\KSH8[V8?[1I!6GK=J;>]DR,98UGH*
M^APTO=/%K1LQ0*1O2I%QFHS_ *W%=5]#CMJ+'P>:?(1BHY/E-,+%JB:T+B:.
MC7!@O$.?XA7TAX6N1+I$//.*^8(9/+N(S_M"O?\ P)>^;8PIGM7CXN%SU<+(
M[^BBBO-/0"BBB@ HHHH **** "BBB@ K"\37 32IA[5NUPWC>[\JRE7/:KIJ
M\B*DN6)X)X@D,E\^/[U5H/NTMXWG74A_VJ2+BOHL.K0/%K.[&2]:1?NTY^32
M#K728/8</NT@IU%/=&5Q@ZT#K2M2K46U&)_%0W6G$<9H'(H*6PP4K=*510.3
M4LH93Q]VD YI>^*5M0!>E.7I2=#BAN*U0AH'- ^]3\4C<"I9*W$_BI#UIR_=
MS1CBJ8=1K'D5ZK\*)-UUCWKRANE>D_".<"_8$]Z\S&KW#T,'I(]XHI%(89%+
M7B'KA1110 4444 <QXY_Y ,GT-?-=Y_Q\/\ 6OI+QW_R )?H:^;;CF9_K7IX
M!'!C"(4YNE"CBE7DU[43R6)CBD?_ %=/IC^E1,(&MX1'_$\@_P!ZOJ"P_P"/
M&'_=%?,7A08UR#_>KZ=L/^/&'_=%>'C?B/:PGPEFBBBN$ZPHHHH BN!N@<>H
MKQ+XB6)7<P%>XL,J17F_Q$T[S+8E5SQ71AY6F8UXWB>$8(.*0U:GB,=RRD5
M<>9BO?HO0\2HA4; Q2/Q36X<4K]!6LD9[$:C+5U7A.[,%Z.>]<P@K1TZ?R)P
M1ZUA4C<VA+4].U^3S])9_:O';O/VDX]:]4GN!-X;9B><5YA.NZ=C[T4QRD+'
MP*5Z:>,4_&174MCG>XT_=ID7^M%/[TD0_?BN6OL:TOB/??AA_P @K\*]!K@/
MAD/^)5^%=_7SU7XV>]3^%!1116984444 %%%% !1110 4444 %%%% !1110
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
M@HHHK,L**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"N5\760FTZ5L=JZJLS7D#Z7*/:J@[,F:NCY>U*'RKV0?[1JLW05L>)H?*O9/
M]ZL4G*BO>PTKH\2LM23.$J/=S2YRN*;MYKO.8?UYI4/[Q?K0!A::O#BN>ML;
M4=SV+X9R;I@*]<KQOX7'-S7LE?/5_C/;H_ %%%%8FH4AI::YPA/H*!,XSXAS
M"/1F.>U?.URV^Y+^]>T_$/41)9O"#TKQ9TY)KU<%'0\W%RU$!^<&I9GW 5$@
MS3GKUHGGO<:.: <'%*E(1@YJ9+00UOO4$\8I<=Z7;FH42T]"+.#2].:".:4C
M(H<"HR$]Z#R,T['RTN/EIJ"*YB,"E-/ XII%)PU)DQG4T['% 7!I^*.05]1G
M;%-/'%2[>]1L,M4J.H^85>*D#<TFWB@+S6BT,GN2$\5&7P*<QXQ41&:L21*J
M>8FZO1?AO>?9Y=N>IKS^'Y82*Z/PA<^5>H,]6KS\5&YVX>5F?2%J^^W5O45-
M5+2FW:?$?45=KQ7N>NM@HHHI#*FI#.GS#_9-?-GBB/R]4F/JU?2M_P V4O\
MNU\Z>-(]M]*?>NS".TCEQ/PG*;>=U2ALKBF?\LJ1#SBO;6QX\MQK?(VZO8_A
M)<^8C GI7CEQ]TUZ-\*KW[/(5)ZFN'&1O$[,*[2/>12U%;OYD2MZU+7C,]5!
M1110,**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ KP[XK?\ '_\ C7N->'_%7_D(?C71A?XAAB/@/+DX
M8U(QXI@&6IS#(KWEL>)/<"/ES6[X)'_%1P_6L(GY<5N>"3_Q4</UK#$? S?#
M_$CZ=MO^/:/_ '14M16W_'M'_NBI:\ ]L**** "BBB@ HHHH **** "BBB@
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
M71V4*EF>QT5#:R"2W5L]14U>4>B%%%% !1110 4444 %%%% !1110 5D^(9
MNDS<]JUJXCQIJ@M[:2/=U%73C>1$Y61X/XEEW:@_^]5 _P"K%3ZH?/NW;_:J
M''R 5]!0C9'BUY)L7/R48XS2#TH)P,5V'.AV?D-+81^;<K]:CS\I%6]('^FQ
MKZM7+7>AO36I[7X B*!>*](KD/"%EY-K&^.HKKZ^>JN\CVJ2M$****R9H5=0
M8+92G_9KYT\:W.Z]D&>]>]Z_<^392#/\-?.7B:7SK^7G^*N["1UN<>*EI8S%
M&8!3.@I4;]V%I&^[7LQT1Y$M6,!W-BO6?AC8>9\Q%>46R[IU'O7N?PR@\N'.
M.U<.,EIH=V$5Y'I$2;(POI3Z**\<]4**** "BBB@ HHHH **** "BBB@ HHH
MH *:XRI'M3J0T SRWXCZ8%L'FV]:\7484BOH;XBQ;]%;CM7SS,?+F*^]>Q@9
M>Z>7BX^\!'RU$HSFI"W%)&.#7H2V.'J7]%G\J\3G^(5](^%9 ^C1'/:OF&W?
MRKE#_M"OH/P/?>9IL29[5Y6.6AZ6$9W%%%%>8>@%1W S;R#_ &34E-D&8V'J
M* /G+QS:E=6E?'>N35?W>:]6^(NE^7%)/MZUY*DF1MKV<*[Q/*Q4=1R\FFS#
M(J0#:<4DWW:[+71QK1E[P]=_9[Q><?-7TEX8N!-I,9SU%?+-K)Y5RI]Z]]\"
M:MYMI%%N["O+Q<-#T\++4]%HI!TI:\X[@HHHH **** "BBB@ HHHH **** "
MD-+2&@&9.O7'V>R9\XXKYZ\57YN-3;G/->X^-YO)TECGM7SKJ<OG7I;/>N_"
MPNKG%B96T*[G%(#N%(W)IP&!7I6LCS7J5F8B0#WKU7X;VA%Y'+BO+_*W3)[F
MO>/A_IOEV44N.U<.)EH=V'CJ>D#[HI:!THKS#T0HHHH **** "BBB@ HHHH
M*\0^*I_T_P#&O;Z\0^*H_P!/_&NG"_Q##$_ >79^:G]!3 ,L:=UXKWXNYXDM
MQCGO6]X'&?$<)]Q6"PK?\$<>(X?K6&*^!F^'?O(^G;;_ (]H_P#=%2U%;_\
M'M'_ +HJ6OGCVPHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH Y'QI_QZ-]*^>M7YU"3ZU]#>-/^/1OI7SSJG_(2D^M>G@]CS\65EX&
M*7M3?XJ4U[$$>5(3/%(O%#=:0U=K,E,4]:2V'^D@^]':GVP_?"L<0M#HI/4^
M@_AO_P @D?2NYKA?AM_R"1]*[JOFJGQ,]RG\*"BBBH+"BBB@ HHHH **** "
MBBB@ K%\1?\ 'FWTK:K%\0_\>3?2KI_$B9_"?.7BH_\ $V<>]8R\"M?Q3_R&
M7^M9.*^DHOW3QJ[U'+TI%ZTE%=!S6!J(?]8*1^E.@^^*PK?";4UJ?0'PR_Y!
M/X5WU<#\,O\ D$_A7?5\W5^-GMT_A04445F6%%%% !3).8V'M3Z1N10#/(?'
M]AB-Y,5Y$YVOMKZ"\?V0?36('.*^?+M3'>E3ZUZF$J'F8J&HIH!H;I35Z5ZJ
MU/-M87-#<C%-'6E'6M$3U(Y5Q'74^![@KJ<*Y[US<JYCK1\*S^3K4.>FZN#%
M1NCNPSU/J6T.;2(_[(J>LW2;M;BRBVG/RBM*O":LSV$[A1112&%%%% !5:\F
M$,+$^E6:Q/$<QALF(]*J*N[";LCPGQ[=^;J[@'O7'1\&M;Q1.9=8;)[UE@<B
MOH,-&T4>+B'J2$\5%GFGOTI@'-=B.0FBZTV?KFG+P*;)TK.H[(J.K-WPA%NU
MB$^]?2]@H6RB_P!T5\\^"(-VH1-CO7T1:<6D?^[7@8M^\>SA%9,FS2TT=:=7
M(=2"BBB@84444 %%%% !1UHHH \S^*%N&L\@=J\-/RSE:^@?B)'OLC]*\ N%
M*W[CWKU<$]#S<7'6Y(S#;BH<8I-W[W%/<<U["V/.V!1\IIBCYC4O\-,C^]3D
MM">HZ ^7,#[U]!> +T-I*)GL*^?)>,$5Z[\/+P^5'&37CXR!Z6%=F>OCI12+
M]P?2EKR3TPHHHH Y?QU_R 9?I7S9=<3N/>OI3QQ_R 9/I7S5>_\ 'TWUKT\
M<.+&J<"ES3*4]*]E*YX\MP!^:E/K3!UJ7^"G):#CN:GAC_D/0?[U?3^G_P#'
MA#_NBOE_PQ_R'X/]ZOJ#3_\ CPA_W17@X[XD>UA/A+-%%%<!UA1110 4444
M%%%%+J!Y?\0]-,RR2XZ5X?(FV:0>AKZ=\662S:1,V.<5\WZA;F&\F!'\1KTL
M)/H>?BH6U*$6=]2MS21K\QH_CKV(,\R0?PXI5.!33]Z@\&M3.X[-%--#=*>Z
M)L./W:;!_KP:<?NTD(_>"N6M\)U4'J?0'PS.=+_"N^KS_P"&/_(*_"O0*^=J
M?$SW(?"%%%%065;^Y%M;F0G&*\1\<Z[Y]RRJ_>O5O&,Q@T61QUQ7S1K%_)/?
M-D_Q5U8:-W<YZ\K*Q%(Q>0D^M$G"T@Z TY^0*]>$3R9R(0ASFIE8=*D* 155
MR=]=*CH97N.?_6 BNF\.Z@;>=/FQ@US)J:WG:)@0>E85HW1M3EJ?2WAK5EO+
M=$#9(%=+7BWP]UO;/B1N/K7JT6K0R' 85X56FXRL>Q3FG$TZ*CCD$@R*DK$T
M3"BBB@84444 %%%% !1124"([B7RHBU>,?$#4]UPRAJ].U_44@M6&[G%>">+
M+\W%VW/>NS"PO*YRXF6ECG&DS(2?6G#I54D[JLJ?EKW::LCQYN[&]&I&YYIS
M"C'R5H]42B//%:>AIOU&'_>K+/2N@\+0&2^C..C5P8B6AUT5=GT9H$8728./
MX:U:H:.-NF0C_9J_7A2W/96P4444AG%^-KKR+=AGJ*^?]4D\R\D/O7LOQ,N?
M)7&>M>(3OOG8^]>MA(^[<\S%.S8U1S3W^[0J\9HD/RXKO:LCSMV3:4GFW\:^
MIKZ$\$V1MK53C&17@_AB R:Q#QQNKZ:T>V6&QBP/X17E8N?0]7!QTN:-%%%>
M>=X4444 %%%% !1110 4444 %%%% !1110 4444 <KXXC\S2F'M7SEJD1COB
M/>OIGQ1"9M/91Z5\\>([8Q7[9'>O3P4K(X,4M3$-/4X%,[TIX%>ONCS6,8_O
M5(]:]H^'=T66-,UXQCY@?>O3OAU=;;Q%)KS<9&Z.O"O4]R'2EID;AT!%/KQS
MU@HHHH X+XE6ZMHK$#G%?/80I,<^M?2OCJW-QI+*!GBOGK4K8V\Y!'.:]3!R
M]TX,3&\BJQRPI)/F%,7I4B#=7I(X)JQ5=2K ^]>D_#[4S'=(A:O/+A1MK9\*
MWAMK]23QFN7$0NCHHSLSZ?M9A-$&'I4]<[X<U%+BT7GG%=%VKQ9*SL>K%W04
M445(PHHHH **** "BBB@ HHHH *1CA2?2EJK?7"P0,6..*$!YY\1=746#Q!N
M17AKR;V+>]=IX]U1I[N6-6XS7"Q@F*O9PE.T3RL1.[+$:[AFG-3K8?NCFD]:
MZY:(YXEBP@^T7,8 _B%?1_@ZW$6B1#'.*\'\(V9N+\<=Z^B-"B\G3D3T%>1B
MF>CAE9FG1117$=@4444 %%%% !1110 4444 %>(_%0_Z=^->W5X=\5O^0A^-
M=&&_B&&(^ \Q4_,:<.#48^]3STKWX'B2W&GK6]X)_P"1DA^HKGS6_P""/^1C
MA^HK#$_ S6A\:/IZV_X]H_\ =%2U%;?\>T?^Z*EKY\]T**** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** .1\:?\ 'HWTKYZU?C4)/K7T
M/XR&;1OI7SMK!_XF4@]Z]/!;'GXL@49&:*$^[2$\U[%,\F8N.*8.33LTG2M+
MZD]!.]26W^O%1]Z?;_ZX&L*_PG11W1]!_#?_ )!(^E=S7"?#4YTD?2N[KYJI
M\;/>A\(4445!04444 %%%% !1110 4444 %8GB/_ (\F^E;=8GB/_CR;Z5=/
MXD14^%GSGXH'_$U8^]9('RUJ^*&_XFS#WK(W?+7OT7[IXM7<5>:3O2*>:<PK
MK3,$!&12PC]X*3M2Q?ZP5A6>AO3W/H#X9_\ ()_"N]K@OAE_R"?PKO:^=J_&
MSVH?"@HHHK,L**** "BBB@#G_%-M]HL&7&>*^<O$-OY&KL,8YKZAU&'SH&'M
M7SQXZM/(U21L=ZZ\-*SL<N(C='+GF@#BHXGW*33P:]ZD[H\6:LQ,<T-P,TJG
M)ICGM6SV,T38S#4=E+]GO4<<8-*C_+BH7&'S7-5C='31E9GT%\/M4^V6P!;.
M!7H':O#_ (:ZAY6%SUKVN!M\*MZBO KQY9GM497B2T445@:A1110 AKF?&,F
MS3B?:NFKC_'LFS2B?:M*?Q(B;T9\]ZV=^IL?>JX'%/OV\R^)]Z83CBOH:'PG
MB5WJ+C(IBCFGCI3>AKJ1S)CE^]BFOUQ3EZYH8<UA5>AM3W._\!VY:>-L=Z]X
MMQBW0>U>3?#>Q\RV63'2O7(QB-1Z"OG\0[R/:H1M$7%+117.;A1110 4444
M%%%% !1110!Q?CN,O9G [5X!J$>R_?ZU]+^(K/[3:/QT4U\Z:_%Y6K2IZ&O1
MP3UL<6+CH8[</FI.J9J!S\^*D#?+BO=@>2PC.0:5/O4U.*<?EYJFB'N/;FO0
M_ %QMO8TSWKS82?-7:^ I_\ B<QKGN*\S%+1G=AGJCZ)C_U:_2G4R$YA3Z4^
MO"/8"BBB@#F/''_(!D^E?-MX/](?ZU])>./^0#)]*^;+T_Z2WUKU,O.'%C%&
M:"*$Z4,:]N)XT]QJCYJ?WQ3 >:4G S1/8J)K>&^/$%O_ +U?3^G_ /'A#_NB
MOF#PO\^O0'_:%?3^G_\ 'A#_ +HKY_'?$>SA/A+-%%%<!V!1110 4444 %%%
M% %#6(_-TZ1/45\\^,++[+=L<8RU?2%RF^%E]:\3^)%CY<N['>NG#2L['+B(
MW1YJHXIK<<T*WS$4A.3BO>HNZ/'GN YYH-'0XI&-;LPZBKR*3J:%.*.AJD5;
M0<.N*=$/WPIO3FEB/[T&N6OL=%'<]]^&0_XE7X5W]>?_  Q.=*_"O0*^=J_&
MSW*?PH****S+.8\<\Z!+]*^9+U#]L8D?Q5]1>+HO-T:1?:OG#6+7R;QN.]=N
M$W.3$)LHJ/EIT8W-0OW::K;6KVX(\F>Y,_3%5MOSU+OR:"O&:V6QFW8C<4T=
M:?U%0EL&L9JY<6;.F:JVG/N5L5W&A^*&FE4%S^=>8$%@*TM)N3;S#GI7%4I)
MZG73JM*Q],:+>K-:!BPK5$BGO7D>@^)=D2IN_6NTT_6!,ZC=UKRYTFF>C"HK
M'5T4Q'!0'-.R*P-A:*3(HR* %HI,BC(H 6H7G1<Y(I\CA8V.>@KSW6/$OV>[
MDCW=/>JC%R9,I)(P_'&N^5</&'KRF]N#<2EB>]:GB?53>:@QW9S6#7L86G:Q
MY>(G=B;:E7I3!3TZUZ:6APLD09--8X?%+G::@9\R5+>@D/<5VW@6T\VX4XZ&
MN)SN85ZK\-+/S/FQ7F8N5D>CAHW/7]/799QKZ"K51PKLB4>E25X[/4"D)P,T
MM5KZ7R;5W]!0!Y)\6[D!@ :\>4[GS7??$?4/M=SMSG!K@D7'->[@XV@>1BG>
M1= _=U5<_/BK"/\ +BJ\@P^:ZZBT.2"U.N\'6A?487QWKZ+LABSB'^S7CGPX
MT[[1&LN.E>SPKLA5?05X.*E>1[.&C:))1117*=(4444 %%%% !1110 4444
M%%%% !1110 4444 5;Z 3PE2,\5X%XZM/)U)^.]?0S?=->(?$:#%U(^/6NO"
M2M.QSXB-XW/,!]ZGN.14*-DD^]2J=U>_%^Z>-):BS+A :ZWP1=>5?KSWKDW.
MX8]*U?#4_E:@O/>N2O&Z-:,K,^E]*E\VU#>U7ZP_#$OF:<I]JW*\*:M)GM0=
MXH****DHH:I:"[MBA&>*^>_&ME]EU1E P,U])-RI^E>'_$6S_P!,DEQ77A9-
M2L85XW5SS/&!4L/0U7#9W4Z.3 ->W%W1Y-7<20[FQ4L,AMB''%1+RU22)N3%
M14C=!3E9GK?@36C((T+5Z[$X>-2/2OFGPGJ7V2^C3..:^@="O!=6JG/:O%Q$
M+2N>M1E=&Q1117,;A1110 4444 %%%% !1110 =*Y#QGJ0M;-L-CBNJN)!'
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
M'>N0;[HKOOA[!_Q,HV]Q7G8MZ,[L.M4?0,"A84QZ5)3(O]4OTI]>&>L%%%%
M!1110 4444 %%%% !1110 5P?Q+B#:.>.U=Y7'>/X_,TDCVJZ?Q(B>L6?.4G
MR2$5+&WRTFH1E+HCWJ.,XKWJ+T/"JQM(28X--C.VG3#)%,8'%=B)V0\'YLT[
MHVZF*#BG-]RN:LBZ>C/:_AI?!;$)GM7J2G*@UX3\/;LQO&F>M>YVYS A]17A
MXB-I'L4)7B24445SFYS/C?\ Y 4GTKYLO3_I+?6OI+QQ_P @*3Z5\V7O-RWU
MKTL#N<>*V(P>*!Q24K5[!Y$MQ!US2/ZT[^&D/W:F6PD:/A?G7[?_ 'J^H].
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
M_$95OA/+%&XFCOBEA/+4A.&->Y3GH>3*%V2'E<5O^">/$,(]ZYY6YK>\&/\
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
MQ:[&VWO656948VD>\VW_ ![1_P"Z*EJ.#B!!["I*\\[@HHHH **** "BBB@
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
M-L.1$B#"*/:G445F6%%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 54N+-9FR15NBA.P-7,QM+C/8
M5&='B/85KT57,Q<J,C^QHL?=%']C1>@K7HHYF+E1EKI4:]A4J:>BD'%7Z*.9
MCY4(J[5 I:**D84444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1VHHH IS62RG)%5SI49[5J457,Q
M61D_V1%Z"E&D1#L*U:*.9ARHS4TR-3G%7XT")@4^BE<$D@HHHI#"BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH ***1CM4F@!:*I&_C#$9Z4?VA'_ 'J +M%4Q?QD_>I?ML?K0!;HJF;^,=Z3
M^T(_[U %VBJ\5TDIP#5B@ HHHH **** "BBB@ HHHH **** "BBB@ HHJ*:9
M85RQH EHJC%J,4DFT-S5X=* "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHI"<#- "T51;48EEV;N:MQR"1<B@!]%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 444=J "BJKWB(V":GBD$BY% #Z***
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***9(XC7)H ?1444
MHE&0:EH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HIDCA%R:I#4XC/Y>X9H T**0'(S2T
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !5:^E$5K(Q/059KEO%>H?9;9USU% '*7/B$K>2+OZ'UI$\0$G[_P"M><7^
MJL+V0YZFEM]49CUH ])3Q!^]P7_6IWU\;AA_UKRJYUIH&SNJ.#Q&99!\WZT
M>ISZ_M_C_6H?^$A/]_\ 6O/9]68XY-,_M)L=: /9/#FK?:KH+NS7<=J\6^']
M\9M4"D]Z]H'04 +1110 4444 %%%% !1110 4444 %%%% !7/>*KPV=B7!Q7
M0UQ7Q#?9I)/M0!S6@:^UQK"Q[LY->L1G,:GVKP3P8"^MHWO7O47^J7Z4 /HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *CG.V!SZ
MU)4-U_QZR_[IH \IO/$+)KLD._H:]'T*?[18J^:\*U&4_P#"6S#/\5>U^%#G
M2U^E &_1110 4444 %%%% !1110 4444 %%%% !1110 4444 %-D.(V/M3JC
MG.('/^R: ."U;6?)O&3=T-=7H-Q]IL0^<UX_XEORNL2+G^*O4/!4GF:.I]J
M.FHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K,UN?[/8L^
M<8K3KF?&\_V?097ST% $OAN^%U"QW9KH:\I^'NL><C+N[UZI&<H#ZB@!U%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4UG"GDTZN<U[4_L=Q&N<9- '1 Y&:
M6JUC+YUJC^HJS0 4444 %%%% !1110 4444 %%%% !1110 4444 9NLS>1:%
M@>U>5V_B1F\5I;[^K5Z7XD_X\&^E>!VLA_X6!$,_Q4 ?2<!W0(?4"I*AM?\
MCUB_W14U !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 5QGC"Q>Z0A0>E=G5:YM$G^\* /GR\\*S/,QV'K3K;PK,I^X:]
MQ;0H&.=H_*A=#@'\(_*@#YW\2^'IK:T:3:1BN5T*REGN0O)YKZ'\?Z/#'H$C
M!1G!KRCP78+)J*@C^*@"^/"\SHAVGI4G_"+3;?N&O:K;0X#;1G:.GI4W]AP?
MW10!YQX&T.2RU0.RD<UZ\.@K/M=,BMI-RKBM&@ HHHH **** "BBB@ HHHH
M**** "BBB@ KB/B.,Z0?I7;UQGQ"YTD_2@#S;P0<:N@]Z]YB_P!4OTKP/P=G
M^W4QZU[Y%_JE^E #Z*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "H;O_CTE_W34U0W7_'K+_NF@#YXU-"/%LQ_VJ]M\)?\@I?I7C.J
M@?\ "42_[U>S>$O^04OTH Z"BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH *CG&8''J*DI",@B@#Q?7] DGU>20*>37I'A&U-KI2H1CBKTNE12R%R
MO-7;>!8(]JCB@":BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "N-^))(\,38]#795QOQ(&?#$WT- 'F?PO=BYR?XJ]Z@_U"?2O"/A@N&/\
MO5[O!_J5^E $E%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5YA\1+TV^HVZ@
MXRPKT^O%_BS*4U>T _OB@#U3P^_F:/ WJM:E8OA4[M MC_LBMJ@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH QO$2[K%OI7@-O$1\0HC_M5]!:[C[$WT
MKP>+'_"?Q_[U 'T/:_\ 'K%_NBIJBM?^/6/_ '14M !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% '(?$3_
M )%R7Z&O)_ B#[>I_P!JO6?B$,^'I/I7E'@<[=04?[5 'T!:_P#'M'_NU+4-
MK_Q[1_2IJ "BBB@!"<"F^8N>M1W,HCA8YZ5A1ZF#/MW=Z .DHJ**16C!S4M
M!1110 444A(%  6"CFFB12>#5'5+H00[LUFV&IB68#=0!T=%-#J0.:=F@ KB
MOB(<:2?I7:UQ?Q#&=)/TH \Z\%KG6$/O7NT7^J7Z5X-X-?&MHOO7O$; 1+D]
MJ ',X7K0KANAK(U6^$!ZU'I.H"XDQNH W:*0$'O2T %%%)D"@!:*3(-!8 =:
M &^8-V,T^N>;4@-3\K=WK>5U*@YH ?12 @]*6@ HHHH ***3</6@!&8+UI0<
MC-96JWHMPO-7+*=9;=6SUH M44F0>]+0 5#=?\>LG^Z:FJ&Z_P"/67_=- 'S
M[JC?\55+_O5[1X2_Y!2_2O%-6./%4O\ O5[5X0.=)7Z4 =#1110 4A('6@D"
MJ.HW(AASF@"X)%)QFGUS5GJ@DN0NZNC5U*CF@!U%&:* "BBB@ HHJ*:0+$QS
MT% #O-7.,TX'(KE9=7"W!7=WKH;*82VZMGK0!:HHI,B@!:*** "BDR*6@ HH
MHH *0L%'-!('6J&IW0@@W9H NB13T-/KF[#4Q+,%W5T2L"!S0 ZBBB@ HHI,
M@4 *3@4T,&Z5#=3+' S9Z51TV]$SL,]#0!K44FX>M+0 4444 %%%% !7(?$4
M9\-3?0UU]<?\1CCPS-]#0!YQ\-!AS_O5[G!_J5^E>%_#,Y<_[U>Z0?ZE?I0!
M)1129&: %II<+U-*2!UK#U34! ^-U &VKANE.K&TB^%QGFM@,#T- "T444 %
M%%% !2$@=:-P'>J.I7(AASF@"\"".*6J.G7*S0;LU=W ]Z %HHHH ***0D"@
M!"X7J:%8-TK%U._$$F,U-I=Z)_XJ -:BDW+ZTM !1110 44A(%&0: %HHSBD
MWKZT +12 YHR!0 M%)D&@D"@ )P,FFB12>M5[ZX6*W+9K#MM5#SA=W>@#IZ*
M9&X9%.>M/H **** "BBD) ZT !8+UIHD4G -4-4NQ!'G-9VG:F)KC;NH Z.B
MFAUQUIV: "BBB@ HI"<4H.: "BDS2;U]: '44@(-+0 4A.!FC</6H+J98X&;
M/2@"97#=*=6/I=\)Y&&[H:U]P]: %HHHH 0G R:\0^+DBMK%I@_QBO9K^80V
MCOGH*^>/B'J7VK6H><[7% 'NGA)@?#]L,_PBMVN-\#WHDTF!,]%KL-Z^M #J
M*0$'I2T %%%)N'K0 M%-WKZTN]?6@!:*0'-+0 4444 %!.!14%S*J0LV>@H
MD\U<XS3P<BN4_M<?:=N[O726TH>%6SUH S?$3;;%OI7@5O(3\08O]ZO>_$?.
MGM]*\&M(\^/HC_M4 ?1UK_QZQ?[HJ:H;7_CUB_W14U !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% ')?$'
M_D7I/I7DG@DYU)?]ZO6?B'_R+LGT->2>!O\ D(K_ +U 'T):_P#'M'_NU-4-
MK_Q[1_2IJ "JM_<"WMRY.,5:[5Q_B[64M[)TW8- &5K'BQ(T9/,_6N5B\3A;
MC=O[^M<9J5Y<7ER2C$C-0+8WA&X9H ]BL_&2,$3S/;K7>:?<"YM%D!SFOE]9
M[NSN(RY( 85[MX/UV.;3(8RPW8]: .UHID;AUR*?0 5CZUJ0L(]Q.*UI'V(6
M/:O+OB!K@$12-N10!'KGBU9(B@D_6L73_%(AF#%_UKA&:[O93@D@TKZ;>JN1
MF@#VBS\9),RKYGZUV&EWPNTR#FOFFSN+NSN%\QB,&O8O!.N+)&JLW.* /1ZX
MSXA'&DGZ5V,;!T##O7&?$,$Z2?I0!YQX.3.MHWO7J6KZ\NG[5+8XKRCPO=I:
MZDI8]#5GQKJ[W-XJ0MU]* -G6/%*SDX?]:KZ)XJ6&<Y?OZUPZ65Y*I)SS5&:
M&[LWW'(H ^AM%UY;^4*&SFNGKP?P+K;)?*LC=Z]PM+@7$(=30!8K)U7419C)
M.*UJX/QU.\4;%3VH VM)UI;V5E#9Q536/$2V18%\8K@/!^N&*\F$C>M97BS5
M9+JYD6)ORH TW\5#^U_,\SC/K731^-4*@>9V]:\;2QO7'F#.:23[;;C+$\4
M?1WA_6%U)<ALUOUXU\-=<V?)*W)KV*&021AQWH ?1110!#=2^5 S^E<9J'BM
M+:0J7Q@^M:WB754M+.12<'%>#ZWJ4]U=/Y;'K0!W6M^+UF"XD[^M7].\9HEJ
MJF3]:\D:UO9USS37%[;J 2>* /HG1]=6^VX;.:Z4<@&O"_!>MM%-&DC<U[58
MW2W,*LISQ0!;J&Z_X]9?]TU-4-U_QZR_[IH ^>M6&?%4O^]7M/A 8TE?I7B^
MJ?\ (UR_[W]:]I\)?\@I?I0!T-%%07%PL"DGM0!0UC4!8Q;B<5P6L^+D9"@D
M_6G>.=?5H2D;<_6O)Y#=W<Y()(- '<67B817(<O^M=A8^,$F*KYGZUXR]C=I
M%D9S3K"[N;2=?,8\&@#Z4TV]%T@(.:T:\\\%:VLT:J6R<5Z"C;T##O0 ZBBH
MYI!&FXT 1WDP@MV<GH*X/4_%Z1;T\SVZUJ^(]>CCL)4##=CUKPG4[JYN[Q]C
M$@M0!UT_B/-SOW]_6NKTGQ>GDHGF?K7DOV"[:,-S26TEW:S#<2 #0!],Z7=B
M[MA(#FLO4-:6VU)("V,G%87A'7D7351V&['K7*>(]8+^+[=$;@M0![/"^^)6
M]13F.$)]!5;3SNL(3ZJ*FG.('/\ LF@#G+K7EAN3'NZ&MO3[D7, <'->-Z_J
M4D>M2*&_BKT[PA,9M)5B>U '1444R1PD98]J ,G7-3&GQ;BV*X#6?%Z2QE!)
M^M.^(6N PF.-N1QUKR;%Y=3$@D@T >@:=XG$4X)?]:[G2O%"74B('SGWKPMK
M.\B7=S6MX=U2:UOXQ(QP#0!](Q-OC5O44^LC0]22]M4VG/%:] !6!JNL+9DY
M;&*VII!&A)KR#QMK16X=$;F@#8U#QDGE,GF?K63IWC!;>4YDZGUKSG_3+QR5
M)(S4-W97T1##=0![KI_BM+E@ ^<^]=E:3>= '!ZU\V:'J4]M.@D8]:][\-7P
MN-.CYYQ0!OT444 %%%% !7&_$C_D6)OH:[*N.^)'/AF;Z&@#S;X8?>/^]7NT
M'^I7Z5X3\,1AC_O5[M!_J5^E #G.U&/H*P+?65DU-K?=T-;ER<6TA]%->-6F
MM&'QG,C-P&H ]'UK6EL$8EL8KSC5/%BW,QQ)W]:;XWUHSHZ1-R17G=C:7MPQ
M8Y/- 'IND^+%M>LG7WKN?#OB!=3EVA\UX%>V5["NY=W%=3\.=9>UORL[=^]
M'OU%4K.]2Y0,IZU=H *9(VV,GTI]9.LZ@EG;/N..* ,?5?$:V;$%\8KE=6\8
MI+#M$GZUR'BC69+BX=8F[USBVU].N?FP: /4=+\9I%"%,GZUU&E>)5O'4!\Y
MKP"2VOK<Y^; KH?"^M26UW&LK=Z /HV-MT8/J*=65HNHI>VR;3GBM6@ [5SN
MKZRMD3EL8K9O+E;:(LQ[5XYXSUTR3ND;?K0!9UCQ0LUQP_?UI^F^+5M>LF/Q
MKS5$NKF7=DGFDU"WO(]NW- 'MUCXO2X< 2=3ZUVEE/\ :+=7!SFOF32]0N+2
M9#(QZU[OX2UE+JQC3=DXH ZVBBB@#!UK5A8.H+8S4^EZB+L#!S7 _$R]>VNH
M@IQDU?\ !^H$1*SGM0!VNKWHLK8R$XKCAXR3[3L\SOZU#XV\0(;%HT8;L>M>
M06EQ=SZJ,,<9H ^E-(OA>P[P<\4S5M1%F.3BLKP4LBV \SKBLSQ[<-"GRF@#
M=TC65O9BH;.*DU?5A91EBV,5YQX(U9OM\@=NE2^--;\R-XXVY^M %S5/&2/"
MR"3]:P+3Q($G#%^_K7!,+RXDX)Q4S6MU%"6YH ]RT3Q.EWM4/FNSA?S(@WK7
MS=X5U:6UNU$K=Z]ZT'4TN[5 #DXH VZ*** "L/6]5%AU;%;$T@BB+GM7DGQ!
MUS+[(V_6@"WK?BE9(\!_UK%T_P 3BWN-Y?\ 6N++7-V>"34%U97B1;ES0![)
M9^-$FD"^9^M=KI=X+N'<#GBOE_3KJ[M;E6D8X%>W>"-=26V5&;G'K0!Z%134
M;<H/K3J ,S6K\6%MYA.*71KX7UKY@.:YKXDW#6^BEE.*K^ M4!T(.[4 =7J=
M^+122<8KC[CQHD4^SS.^.M5?%^OJ$=5;FO'[JZN[G4%*,<;J /I'1=6%^JD-
MG-:.H7(MH=Y.*XCP$DPAC,F>E;_B^<P:86![4 9=YXK2 GY_UK$OO&R-;LOF
M?K7G>IW]Q<3,J,>M9$EIJ#G^+F@#TK0_%JQS,3)U/K7;:;XC6Z< /FOGU(+R
MU.3D5U/AK69(;A1(W>@#Z"@D\R,-4M9&AWBW%DA!ZBM>@#C?&&LBSMY(]V,B
MOG'Q)J'GZJK;L_/7LGQ*BG>9BF<5X)K$4BW@W==U 'L7A3Q0ME9Q@OC ]:ZL
M>.(^/WGZUXA8Q73VR"//2KRVNH<?>ZT ?2VA:@-0LQ*#FM6N.^'J2IHBB7KB
MNQH 9,^R)F]!7&:AXI2VF9=_3WK;U_5$L;60,<$BO!];U.:ZOY/+8]: /3#X
MVC!_U@_.I8?&2.P'F?K7C)BOFYRU.CEN[=@6)XH ^D=&U 7T.X'-:M>8^ ==
M4VXC=OF/O7ID;;T##O0 ZBBHII1$F30!!J5R+6U:0G&*X#4O&*!'3S/UK2\7
M:]&NFR(K#=CUKPNYGN[JY;:QP30!VR^(LW.[?W]:[#3?%R,B)YGZUX^EE=!-
MW-+:W5S;7*[F. : /H'4K@76C>8#G(KQ.T<#Q[$/]JO2+'5DG\/JA;YMM>86
MI)^(,7^]0!])VO\ QZQ?[HJ6H;7_ (]8O]T5-0 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!R'Q#_ .1=
ME^AKR3P-_P A%?\ >KUGXC''AN7Z&O)_ (S?*?\ :H ^@[7_ (]H_I4U16W_
M ![1_2I: (IY5BC))QQ7@GQ UMSJ,D*,2,]J]>\67_V'3V?..*\!N2=8\0XZ
MY- &QX3TEK^,.ZYSZUZ+:>%(VAR4'2G^$]"%K:K\O:NV@@"1XQ0!X=XUT'[&
MF^-.G/%9?@K7I(M3%N[$ '%>O^*-%%[;2?+G@UX3-"='UYSTPU 'TOI4PGM%
M8'-7ZYCP3=_:M&1\YXKIZ ,[6+I;>PE);!"U\[>(=2EU#4Y(U)(#5ZK\0M9^
MQ1-&&QN&*\U\+:9_:^INY&<MF@#?\(^'A<["Z=?6N[;PA"5^X/RJ_H6CBR"_
M+C%=+@8Z4 >"^--"^P.S1IT]*Q_!NJ30WRQDD?-BO8?%FC"]A=MN:\MMM(-C
MJR87'ST >\Z:_F6$3'N*YOQZN[2C]*Z'2.-,A_W:P/'7_(*;Z4 ?/LVHM::@
M0IQ@UJ:89=6U6'<"037,W>9M?\OU->O>"O#N3',5Z8- '66?A2+[+&=@Y6N;
M\7>&E@MRRH.E>KPH$A5<=!63K]@+RW88SQ0!\W6MU)INJ'J,&OH3P9?B[TA&
M+9.*\1\8:7]@N&D QS7H?PVU$MIT<>?2@#U*N \?#]PY]J[Y>5%>?_$)MMK(
M?:@#Q*+5&L[Z4*3R:UM$CEU34,N"037((QGU=D_VZ]O\&>&PMO'/MZT :^G>
M$HGM02@Z>E8/B?PPL$#E$' KU>TA$407%9FL:<+N)EQG- 'SMIE]+I6KQQ\J
M"]?1^@W:W&EPMG)*UX-XUTG^S-4CD Q\V:],\ :J;JWCBW9P* /0J9(XC7).
M*?6+XEO/L>F/)G&!0!Y9\2-<9+MHHVZGM7*^&;!]1FW.I.3WJOJ]X=9UQ5SG
M+5ZEX2\."WA1]G49H ET_P )QO",H.GI6/KWAE8D;:@KU.UMQ$F,51U/3A<(
MW% 'SC]HETW6 O( ->[>!M4%W8#<V3BO+?&FA_9)WG"XQ6C\.]:*E82W?% '
MN@Y%0W7_ !ZR_P"Z:= VZ%&]13;K_CUE_P!TT ?/.K\>*IO][^M>U>#S_P 2
ME?I7C6KIGQ1+_O5[-X0&-)7Z4 =#7,>*K\6EI(<X.*Z>O+?B9J/V<>6#UXH
M\LU+59M0U)HP21NQ7>^&/#HN(49TZUS'A+1/[2U N5SELU[=HVE"TA5=N,4
M<Y+X6CZ;!7GOB_1S8,S(O3TKWIX 3TKC_%>A"[MY&V]J /*O ^LR0W@1V(^;
M%?0FF3B:SC8'.17S1/$=&U90./GKW3P=J/VJSB&<\4 =A67KL_V?3W?.,"M2
MN8\;7 @T.1L]J /%_$VORRWIA5B03BKGAC1C>D.Z=>>:P["T.JZH&QGYJ]H\
M.Z"+2!#MQQ0!2A\+1F'[@Z5R?B/0/LRLR)TKV-8 J8Q6)K&CB[C8;<T >'6>
MLS6-P(B2 *A_M WGBVU;.?FJ_P"+M).G2O(%QBN3\-3FX\2VY)Z/0!]8Z9_R
M#H/]P5-<_P#'M)_NFH=,_P"0=!_N"IKC_CVD_P!TT ?/OBAR->E_WJ]<\"'.
MB)]*\D\4)G79?]ZO7/ @QHB?2@#JJSM9NUMM/F);!"UHUYQ\1=:^PQ-$&QN&
M* /*-9U.74=8DB!) ?%=OX=\-K-;([)R:Y3PGIG]J:LTA&<MFO<=)TP6UNJ[
M>E '+WWA:,6A(0=/2O+-?M9--O-R*1@U]'7%L'@*XKS/QGX=#VTLNWI0 _X7
M:R;I"LC=..:]6!W#(KYV\"WQTW4#%G&6Q7T#82>;9QOZB@"GKD_D6C-GM7SM
MXFOWN=>,8)()KWCQE+Y6F,?:O"K:T^W^)EXSEJ .]\&>&ENK(.Z#..XKHK[P
M?$;=CL' ]*W_  WIXLK)5QCBMF9 \3+CJ* /F[7=.DL;WY%/#=J]/\"7$C6\
M:MGI4NL>%Q=SEMG?TK:T#1_L*J,8Q0!TPZ4M%% !1110 5R'Q%_Y%J;Z&NOK
MC_B,<>&9OH: /./AH,.?]ZO<X/\ 4K]*\+^&1RY_WJ]T@_U*_2@!EY_QYR_[
MIKYAUS4FM/&4Y!Q\U?3U[_QY3?[AKY)\6N?^$RG'^U_6@#H;::;5;]5()4UZ
MCX?\*1FW#%!T]*YWP+X>^T6\=P5S7K^G6PMX0N.U '(ZGX2B-G(VP9"^E>+:
MD\FB:JVT%1OKZ@N(Q) ZXZBO"OB3H?D-YP7J<T =WX&U7[9919;)(KOZ\1^&
ME^?M$<&>E>VCH*  D*,FO+OB3K)M5V(W7TKTC4)?)M'?T%> >.]1-[JB1 YR
MV* ,/2DFU*_^8$@M7L.C^$XY+%&*#)'I6/X4\*@6\4^SKSTKU*P@$%LJ8Z4
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
MJ$]167X@G2>Q?O\ +0!Y'X(S'XP,?HU?0B_='TKY[\)''CQ@/[U?0B_='TH
M@O?^/5_I7@GCL@ZW!_UT%>]7_P#QZ/\ 2O ?')QKD'_704 >V^%E T&V_P!T
M5M5C>%O^0!;?[HK9H *Y3QE?>1I,ZY_AKJZ\S^(UT4MI8P>HH \T\+P'4M9D
M8\X>O?\ 1[806<8QC KQKX5V?FWTK,,_,:]TC39"H':@"P,8J*= T9&*D3I2
ML,B@#Q'XCZ=^_:4+TJW\'[@R22(3T)K>^(%D)+"9\=!7&?"&Y^SZA.K'^(T
M>\,<*3Z"O)OB7JF^R> -7JC/NM68?W:^?O'=TTNIR19[T :/P[TWS)(YBO>O
M<88PL2@#M7G/PWL@NF(Q'->E#[HH ,"HYHU:)ACM4M(>AH \&^)FDD++*%]:
M\V\ QE/%T(/]ZO?OB-8+)I;MCG!KP_PC%Y7C2%?]J@#ZOM/^/2+_ '14U0VO
M_'K%_NBIJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** ..^(QQX<E^E>4> >;Y<_WJ]9^(8W>'91[5Y/X&
M^34%'^U0!]!6W_'M'_NTZ4XB8^U,M?\ CVC^E.G_ -0_TH \1^(]Z6WQD\9K
M8^'3QIIZ,2*Y+XD2XN)/K47A76S;6"C=B@#WW[=%@?,*7[=%_>%>4CQ0VW[_
M .M*/%+$'Y_UH ]6^WQ$8W"O/OB4T4FE$@CI6/%XJ8N1O_6L#QAKQN;#;NS0
M!-\/Y\:C&@/>O9M??9H4C?[->#?#N8MK$?UKW7Q)_P B[+_N4 ?/TI-WX@7/
M.)*^AO#T BTJ#C^&OG_3(O,UW/\ TTKZ)T<8TR$?[- %^BBB@ HHHH *XWX@
M?\@D_2NRKB_B&<:0?I0!Y?X/A!\1(WO7T#%_JE^E>!>##G74^M>^Q?ZI?I0
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
M]>YW!Q&:\(^(<H.MJOO0!U_PN&(3]*](NO\ CUE_W37GOPTCV6^?45Z%=_\
M'I+_ +IH \ U/YO%,H_VJ]F\*#&EK]*\6U)MOBR7_>KVGPHV[2U/M0 OB_\
MY%ZX_P!TUXEX*XUB3_KH:]O\6#.@7'^Z:\,\+.(M:<>LAH ^A=/_ ././Z5:
MJIIAS81GVJUGF@!:C8?-4E% &#XE7.ES_P"[7A?AJ3;XGF'^W7N7BB0)IDX_
MV37@_AS)\3S'_II0!]#Z6<Z:I]J\"\8?+XU)_P!JO?-(_P"08OTKP;QTGE^*
M6D]Z /7?!#[]-'^[75J,5POP[NA+IHY[5W@H 6BBB@"AJO\ QYM]*\"UM<^-
M[<_]-*]VU^<0Z>[$]J^?[Z]6X\:08/\ '0!]%:7_ ,@V#_<%3W'_ ![R?[IJ
M'2_^0;!_N"IKC_CWD_W30!X#XI&=;D_WJ]8\"#&B)]*\H\3_ /(<D_WJ]9\"
M_P#(%7Z4 7_%'_("N/\ =KY6U8G^UI/]^OJKQ.,Z)./]FOE_4K4OK##'5Z -
M&V9A;K]*E0LK9K<L] D>TC8*>15D^'9-GW30!S3%BV:>)6"]:Z(>'9-GW343
M>'9<?=- '$7MNUU>QG&>:]N^'5L88H^.U<1;>&G-PI*'@^E>K>%;'[+&HQCB
M@#K",BN,\5:/]MA<!<YKM*BE@20?, : /FO5O"[V\Y.S'-9\9;37&>*]R\0:
M+')(2J"O,?$GAV3)**10!K^%?$H655+]Z]BTZ<7%HLF>HKY?M3-IETNXD?-7
MOG@W5UNM.B3=DXH ["BBB@ HHHH *X[XD?\ (LS?0UV-<=\2/^19F^AH \V^
M&'WC_O5[M!_J5^E>$_##[Q_WJ]V@_P!2OTH 9>?\>DO^Z:\0T'_DHLW^]_6O
M;[S_ (\Y?]TUX?H)_P"+C3?[W]: /=E^Z/I2TB_='TI: "H+O_CTE_W34]07
MG_'I+_NF@#P?3IA%\09C_MU[K92^;;AO:OGP,5\>38_OU[QH;%K%2?2@#R[X
ME\W^/>M'X5)M#51^)0_T[=[U?^%<@<.!0!ZI1110 4444 %<!\21FQ_"N_K@
M_B*,V/X4 >?^ .-?'UKWD<QCZ5X!X%F \1[?>O?83NC'TH <@P*?110 5Q/Q
M&&=%;Z5VU<1\17QH[?2@#R;P8N/$,?\ O5]&0?ZA/]T5\\>#.=?C/^U7T/!_
MJ$^@H \8^,0S<QCWJQ\+8=DJG%,^+JYNXOJ*TOAM%M"'% 'JE%%% !7GOQ"&
M8C]*]"KS_P"(!Q"WTH Y;X:#_B<R?[U>TUXC\-I0-;D_WJ]L5LB@!U,8?-3Z
M:3S0 UQ\M>4?%D9LUKUEONUY+\6' M5H SOAM_KXZ]"\>_\ (MR_2N ^&Z_O
MHS7H/CI=WAR4>U 'B_@O_D*#_?KZ)LO^/./_ ':^=/"3>5JR@_WZ^B=/;=9Q
M?[M $[C-.7@4M% !6)XG_P"0+/\ [IK;K!\52;=%G_W: /!M*_Y#K?\ 72OH
M?1?^07#]*^>-#_>ZZV/^>E?1&CC&FQ#VH XWXK?\B^:Y+X:Q91&QWKK?BKSH
M!KFOAH/]'3ZT >R1_P"K7Z4ZFI]Q?I3J &N<(3Z"O)OB'K>+=X0W2O5K@XMY
M#_LFOG7QI</=ZW+ "3STH Q=)TU]0N0V,Y-=W!X5;R0-G;TJ;P/H>U$9UKU.
M+3X@JC:.E 'D9\*,F?D_2L76/#3K$3M[5[M/IT1'""L'6M*C:U?"#[IH \@^
M'-N;?Q5L(Z&OI%?NCZ5X%X3B$/CAD Z-7OJ_='TH KWW_'H_TKP/QR,:Y!_U
MT%>^7W_'J_TKP3QV?^)Y!_UT% 'M?A?_ ) -M_NBMFL;PM_R ;;_ '16S0 5
MX7\7!F[->Z5XE\5H]]T: /+] )61_K6U,6ZU'X7TI[F1\ ]:ZF3P[(1]TT <
M_P"<WD@9J!96#]:Z/_A'9?[IJ,^')=_W30!S5_NFB8>HK<^'6B-)=[]O\6:N
M_P#".2,.5-=YX"T46A)9* .VCC\K263T0U\Z7J[?'LK?[5?2EP +20#^Z:^<
M=67;XTE;_:H ]W\+-NTU?I6]7.>$&W:6OTKHZ "BBB@#)U[_ (\F^E?/\?\
MR42+_?KWWQ$^RP8^U?/]O)O^(<1_VJ /I.U_X](O]T5-4-K_ ,>D7^Z*FH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH Y#XA_\B[+]*\E\#$_VBO^]7KGQ!&?#TGTKR3P2,:DO^]0!]!6
MO_'M']*?-S"X]J9:_P#'M']*E894B@#P'XF6S!W;'>NJ^'%A#/H2;L9Q4/Q5
ML FG&7%5?AGJ.VWC@S^% 'I']@PD?='Y4G]@0_W1^5;J\H#[4M &%_8,7]T4
M?V##_='Y5NTA('6@#.M=,CMV! %0>)1G1)A_LUL @]*S=>3?I4J^U 'S@&,7
MB)0>\E?2&A'.CVY_V:^<]7B^S>(XN,9DKZ'\.2J^C6^#_"* ->BBB@ HHII<
M*>30 ZN*^(G_ ""3]*[4<BN,^(0SI)^E 'FW@L'^VD^M>\Q?ZI?I7A?@U?\
MB<)]:]TC_P!4OTH ?1110!Q'Q&.-'/TKRCP6<^(X_K7K'Q%&=(/TKR3P8<>)
MD'^U0!]'0_ZE/I7G_P 0A^X?Z5Z!#_J4^E<%X_&8'^E ''?"O/\ ;4O^]7N-
M>)?"Y<:W+_O5[;0 4444 </XZ)^R2?2N&^%W_(?F_P!ZN^\;IFRE/^S7G_PN
M/_%0SC_:H ]Q;[A^E>"?$*$KJKOCO7OA^Z?I7C7Q&M<&23% &Q\,+@?V?@GM
M7IHY KQ;X:7NR,)GO7L\1W1*?:@!]%%% %6\;;"2:^?/'<OF^*8T'=J]YUN4
M163-GM7S]K+?;/&$/?YZ /7O 5L8;-"1U6NQNO\ CUE_W365X>LQ;V$)QC*B
MM6Z_X]9?]TT ?.^M$CQ3+C^]7M7@PDZ.N?2O&-67=XJE'^U7M/A!=NDJ/:@"
MSXH&[0YQ_LU\_P"FO]GU[!XS)7T+KZ;])F7VKYWU$&TU].V9* /HO1G#Z7"?
M]FK@^_6+X9N!+I4'/\-;H'.: '4444 <=XUN/*LI5SU6O'_"41E\02D?WZ]&
M^(]V(HF7/45Q?PUM_M.M2,1GYJ /<-,7;IZ@^E>)_$>S9+^28"O=H(_+A"^U
M><_$C2@VF2S[><&@#,^%U^/L>PGFO6XSE :^=OA_J1MKM8BV/FQ7T%9SJ]M&
M0>HH M4A.!1N%133*JGF@#D_'-\(='EP><&OG73KMKCQC 2?^6G]:]:^(>J9
MMY8@WK7C?AM2WBJ!C_?_ *T ?76E?\@RW_W!4]Q_Q[R?[IJ#2_\ D&P?[@J>
MX_X]Y/\ =- '@'BK_D-R?[U>L^ _^0(GTKR?Q0,ZY)_O5ZSX%&-%7Z4 :OB%
M=VD3#VKYWN[8+KHW#K)7T?JR;]/D7U%?/WB=/LFMQGI\] 'L&AZ1#+I<)P/N
MUI_V%%C[HJAX/NQ-IT*YS\M=70!B?V%%C&T4W^P8O[HK=HH PTT*)6SM'Y5I
MVUJL X%3E@IYIPY% !1110!5N+59CR*R-0T**:%B5'3TKH::Z[D(H ^<_'VF
MFQ?<BXP:W_AEJ3R31Q,:V?B1I0>W+;:Y3X<'R]>$?H: /H =!2TB_='TI: "
MBBB@ KCOB1_R+,WT-=C7'?$C_D69OH: /-OAA]X_[U>[0?ZE?I7A/PP^\?\
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
MQZR_[IH ^?-3_P"1KE_WOZU[5X3_ .04OTKQ/53CQ7+_ +W]:]J\(G.DK]*
M->_B\VT=/45X!X_LC8ZK')C'S9KZ((R,&O)?BAHYN3YJ+]WF@#3^'^K"YMXX
MMW05Z.#Q7SWX!UC[!J!B=L8..:]NL-36YC4@YS0!KU%.X2(G/2HVN .]8FMZ
MPMM:OE@.* /+_B=J>;E8P>IQ5SX5VNVZ\S'6N,\47#:SJJ;3G#=J]7^'^F&U
MMXV*XXH ]$KF_&=M]IT21,=17250U>'S[-DQGB@#YC\TZ-K [8:O8?#'B<7<
M*+OZ#UKSSQMX<D%VTR*0 <\51\,:B^GOM=B,'O0!]"+? Q9SVKFM;\0"W5AN
MKFH_%Z>5M\P=/6N9UO56O"VUNM %77+\ZG<,N<YKG](LOLWBBW&/XJZ/2-'D
MF83,"15::,0>+K9<8^:@#Z,TS_D'0?[@J:X_X]Y/]TU#IG_(.@_W!4UQ_P >
MTG^Z: / ?%)QK<G^]7K/@0YT1?I7D?BHYUR0?[5>M^ _^0(GTH Z6Y3S(&7U
MKPCXEVOV:_1\=&S7OA&17E?Q.T@W2F15Z"@!OPTU3[1MBW=.*]7KYT\ :D=*
MU1D=L8;'->ZZ;J:WB @YS0!K445C:KJRV(.6 Q0!5UO519W,:;NIK;LY/-M4
M?U%>1:[KPU#580CYPW:O5=%).EPD_P!V@#0I,CUK/U:^%C;^83BN<@\6Q23[
M-XH [2BJEC="YCW YJS(VU"?2@#A/B*0+(_2O.OA_P#\C/\ C75_$?5E\GR]
MP]*P?AW9EM66?'!- 'NB_='TI:0?=%+0 4444 %<=\2/^19F^AKL:XWXD?\
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
M7K_PXTD16 9UYQ7G_AK1S>WR,R9R?2O<]#T\6-JJ@8XH U5&% J*[_X]9?\
M=-35%<\VTG^Z: /GC5P?^$JE_P!ZO:O!_P#R"%^E>0ZI:LWB>4[3]ZO8?"B%
M-+4'TH WZPO$FG)=Z=,2,G::W:BN8_-MW3U% 'RO.D^EZ[*P!"[Z]5\+:\I@
M0.W./6LGQ[X>%J6G5.3STKA;#5IK2;9D@"@#W:77(L_>KA/&.MEH76-NH]:Y
M9O$<Q?[QJE-=RZA<*AR030!9\(64NH:AND&?FKZ%T:R6VLX\#M7GO@/01&H<
MI[UZI"FR)5]* 'TR1 ZX-/HH Y7Q'H<4]A*VWG'I7A&K:7<6T\GEJ>M?35U%
MYT#(>]<=>^$X[AV)0<F@#YZ5=0$N,-UKH=,T^YG*[U->I?\ ""Q[L^6/RK2M
M?":0X^0<4 5-)TA(=$WLO.*\PU88\;6X']^O<;^$6>CLO3 KPZ\_?>,H&_V_
MZT ?0VE_\@V#_<%3W/\ Q[2?[IJ'3/\ D'0?[@J>X_X]Y/\ =- 'SYXF4G7Y
M/]ZO7O HQHJ_2O,O$5HS:U(V#]ZO4?!B%-(4'TH Z6L7Q!IR7=A+D9.VMJHY
MT\R%D]10!\O:K!-I>L2,H(&^O3O!FO#R8Q(WZU2\>^'Q&&E5.3STKSZVU6;3
MY=HR,4 ?1G]NV^/OBO.?'>NY#B)OUKBQXMG/&XUGW5_-J5P%;)S0!/X9^T7^
MIJSY(#U]':0I3385/9:\M\">'A\LA3WZ5ZW;Q^5"J>@H Y/Q^TJZ0QCZXKPN
MTU6Z@U4"0D#/K7TCK=@+^T,9&>*\%\6Z,=/O7=$QCVH ]4\*Z]$UF-[\XK;O
M-=@%L^'&<5\_Z5K]Q;1[<L,5:NO%<[#;N/- "^.=0>\N]J'(W5Z+\.M/V64,
MI')%>86<#ZI=*S*3\U>\^%+ 6VF1#&,"@#I>U%%% !1110 5QWQ(&?#$WT-=
MC7)_$",R>'95 [4 >8_"^%BS''\5>[0<0K]*\K^%NG;;9V*]Z]7484"@"&\_
MX\YO]PUX-X?#?\++F_W_ .M>]78S:2C_ &37C&B6;+\0)9-O&Z@#VQ?NCZ4M
M(OW1]*6@ J"\_P"/.7_=-3U%<C-M(/\ 9- 'SK%"[_$";C^.O?-%0I9*#Z5Y
M1I^F%_'$KE?XJ]CM8O*B"^U $DJ"2,J>]>.?$W1?F\R->1S7LU<UXHTE;^U<
ME<X% '@'AS5)[:^$;D@!O6O>=#UZ$Z>@9QG'K7ANJ::VGW\C*I&#Z4^T\3SV
MY$>XC% 'N.MZY"+!MK#./6O#O$>KS7-V8T8D$^M3WGB6:> IN)S6?I%H^HZC
M'N4G)H ],^$]M)$C,XZUZL1D8KF_"VDKI]JA"XR*Z6@#@_'NDK-IS,JY.*\,
MLY)].UQ5.0H-?3^K68O+8H1GBO#/%VA_8KQI53I[4 =IHFO+L3<W;UK9U#7(
M_+&&[>M>(6NM30<9(Q6@?$$LL1^8]* -;QGK32Q;8VJMX TM[O55DE7@FN>C
MDEU.[","1NKVOP5H*VMM'-MP: .UL[=;:$(H[59H'2B@#QCXN(6O8?J*WOAX
MN(8_I6?\3[9IKN(@9Y%;'@2(QQH".U 'H-%%% !7GGQ#_P!4?I7H=>=_$/\
MU1^E 'D-K8?:+J0J,FF6%Q/8ZN5.0H-=1X,LQ>:A,I&:K^)M'-G>/(JXY]*
M.XT775\A=S<_6M"\UV,0-ANWK7CEOK$UN=N2*EGU^9UV[C0!9\6ZG+<S;8SG
M)K=^&FE/)>^9*O4US&FVSZG=+N4G)KVWPGHBV,"2!<9% '5PQ"*,*.U2444
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
M[#K>E+--D(/RK,@T4+,IV=_2@#FM%\'F.19"G?/2O5]*MQ;6:IC&!2V=I''
MHVC@>E7  HP* %HHHH Y3Q/I'V^56VYP:M:%IWV-5&,8K>>-7ZBE5 O04 .H
MHHH *\Z^(G^I/TKT6O//B&,PGZ4 <E\,_FUB4>]=MX@T#[86.WK7%_#%,:U)
M_O5[2\*N.0* / -3\-&"8_+^E4[;P^TTRC;WKU_6=)664D(/RJCIVBA+A24[
M^E &7H/A;[.R.4_2O2[.(16ZKCH*2"V1(EPHZ58 P* %HHHH *Y+Q7HXU%?N
MYKK:8\:OU% 'A&K^%#;9;;^E9>F^'FN+O;MKVOQ!IJ3PX"C\JQM$T817NXI^
ME '-V/@TQ3JVS]*](T.R%I;A<8XK16UC&/E'Y5*JA1Q0 ZBBB@#"\36'V^Q\
MO&:=X;L/L-@(\8K9= XP10J!!@"@!U%%% !65KEF+NU*8SQ6K2,H88- 'CNL
M>%,(SA/TKC9]#;S,;>]?0>I6:26K#:/RKBIM#!F)V=_2@#C-#\+&9LE?TKTC
MP]HGV)3\N.*NZ#IJ0#E1^5=$L2KT H XVTT/RM?:YV]37:#H*8(E#;L#-24
M%9.L68NH67&<BM:D90W6@#QV^\&&6Y=PG4^E01^"2K@[/TKV,VL9/W1^5'V2
M+^Z/RH RO#-C]@T\1XQ6Y340(, 4Z@"*YC$D#+CJ*\QU_P *?:IG<)U]J]3Z
MU!+;(ZG*B@#YVU#PZT$A7;TK7TKPB;FTW;?TKO-6T42W#$)W]*Z#0M.2&S"E
M1^5 '(^'O"_V*124Z'TKT>!-D2CT%(L")T J6@ I#R*6B@#EO$&DB\1AMSFO
M/+_P:55WV?I7M+1JW453O;*-[9QM'3TH ^>VT%C<;-O>NPT;PB5"2%/TKH/[
M$'VS=L_B]*[6RLXX[9!M' ]* &Z5:BWL5CQT%<U<Z'O\0+<[>AKM  HP*:8E
M+;L#- "QC;&H]!3J** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** $8;ABJS6:,<XJ
MU10!#% L705-110 4444 %%%% #)$#C!JN;),YQ5NB@".*,1C J2BB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ I",C%+10!5>T1SDB
MGQ6ZQG@5/10 4444 %%%% !1110 4444 %1RQB1<&I** *GV-,8Q4\40B&!4
ME% !1110 5S'CB1H]!D9>N*Z>N>\80^=HLBXSQ0!Y%X5UIXKS;(W\5>QVFLQ
M/ GS=O6OG.Y>73M1X!'S5U>E^)VPBLYH ]L.I1@9S44NKQ(A.X=/6O.9/$8\
MD'?^M9&H>)B(CAZ ,SQUJC7>IO$C9!-=M\,--'V#>XYQ7E,1EU36@2"037O?
M@NS^R:>%QCB@#J5&% ]*6BB@ HHHH **** "F21B1<&GT4 5DM$1L@59HHH
M**** "BBB@!&7<N*K_9$W9Q5FB@!%&!BEHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH *KRVRR=15BB@"M':)&<@59HHH **** "BBB
M@""6W60Y(I@LT!SBK5% "*-HQ2T44 %%%% !1110 4444 %>?^/QF(_2O0*X
M#Q__ *H_2@#F/ALN-9D^M>S5XU\-S_Q.)/K7LM $$ELLAY%,2S1#D"K5% "
M8&*6BB@ HHHH **** (IH1*,$5'%:)&V0*LT4 %%%% !1110 4444 %%%% !
M1110 UU#K@U6-DA.<5;HH BBA6+H*EHHH **** "BBB@ HHHH **** "BBB@
M"M):(YR14L48B7 J2B@ HHHH **** "D9=RXI:* *GV)-V<5:5=JXI:* "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *HZI;_:;1DQUJ]2$
M CF@#POQ9X>\N5I-O0UYO>WQL)L9Q@U] >-(E$$AP.E?-/BUBMTV/[U &Q_P
MDI:,#?\ K42:L;J79NS7$Q2MZFM+1G)OER>] 'NW@SPY]H1+G;FO7]-MOL\(
M7&.*YKX>1*=!0XYP*[, #I0 M%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %>=?$1]L9^E>
MBUYM\2/]7^% '/\ PS;.L/\ 6O::\2^&'_(8?ZU[;0 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
0 !1110 4444 %%%% '__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695223725088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Feb. 28, 2023</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">0-21121<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TRANSACT TECHNOLOGIES INC<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001017303<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">06-1456680<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">One Hamden Center<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">2319 Whitney Avenue, Suite 3B<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Hamden<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CT<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">06518<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">203<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">859-6800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common stock, par value $0.01 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TACT<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,300,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,935,827<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">688<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">Marcum LLP<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Hartford, Connecticut<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695227399152">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 7,946<span></span>
</td>
<td class="nump">$ 19,457<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, net</a></td>
<td class="nump">13,927<span></span>
</td>
<td class="nump">7,593<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NontradeReceivablesCurrent', window );">Employee retention credit receivable</a></td>
<td class="nump">1,500<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">12,028<span></span>
</td>
<td class="nump">7,711<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidTaxes', window );">Prepaid income taxes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">137<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsCurrent', window );">Other current assets</a></td>
<td class="nump">724<span></span>
</td>
<td class="nump">738<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">36,125<span></span>
</td>
<td class="nump">37,136<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">2,781<span></span>
</td>
<td class="nump">2,684<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Right-of-use asset</a></td>
<td class="nump">2,488<span></span>
</td>
<td class="nump">2,553<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">2,621<span></span>
</td>
<td class="nump">2,621<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="nump">7,327<span></span>
</td>
<td class="nump">5,143<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">242<span></span>
</td>
<td class="nump">397<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">248<span></span>
</td>
<td class="nump">400<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsNoncurrent', window );">Total noncurrent assets</a></td>
<td class="nump">15,707<span></span>
</td>
<td class="nump">13,798<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">51,832<span></span>
</td>
<td class="nump">50,934<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LinesOfCreditCurrent', window );">Current portion of revolving loan payable</a></td>
<td class="nump">2,250<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">7,395<span></span>
</td>
<td class="nump">4,308<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued liabilities</a></td>
<td class="nump">4,077<span></span>
</td>
<td class="nump">3,894<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Lease liability</a></td>
<td class="nump">875<span></span>
</td>
<td class="nump">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="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">1,329<span></span>
</td>
<td class="nump">805<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">15,926<span></span>
</td>
<td class="nump">9,796<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, net of current portion</a></td>
<td class="nump">143<span></span>
</td>
<td class="nump">186<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Lease liability, net of current portion</a></td>
<td class="nump">1,683<span></span>
</td>
<td class="nump">1,781<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">218<span></span>
</td>
<td class="nump">187<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrent', window );">Total noncurrent liabilities</a></td>
<td class="nump">2,044<span></span>
</td>
<td class="nump">2,154<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">17,970<span></span>
</td>
<td class="nump">11,950<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (see Notes 9 and 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $0.01 par value, 20,000,000 authorized at December 31, 2022 and 2021; 13,956,725 and 13,917,731 shares issued; 9,911,883 and 9,872,889 shares outstanding, at December 31, 2022 and 2021, respectively</a></td>
<td class="nump">139<span></span>
</td>
<td class="nump">139<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">56,282<span></span>
</td>
<td class="nump">55,246<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">9,630<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive (loss) income, net of tax</a></td>
<td class="num">(79)<span></span>
</td>
<td class="nump">143<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockValue', window );">Treasury stock, 4,044,842 shares, at cost</a></td>
<td class="num">(32,110)<span></span>
</td>
<td class="num">(32,110)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total shareholders' equity</a></td>
<td class="nump">33,862<span></span>
</td>
<td class="nump">38,984<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and shareholders' equity</a></td>
<td class="nump">51,832<span></span>
</td>
<td class="nump">50,934<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124259787&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e637-108580<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<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)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669686-108580<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 https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e681-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 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)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 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)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of 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="Show.toggleNext( this );">+ References</a><div 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 https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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.25)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<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)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 55<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=122137925&amp;loc=d3e14258-109268<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br><br>Reference 7: 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(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6904-107765<br><br>Reference 21: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124433192&amp;loc=SL2890621-112765<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 201.5-02(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123419778&amp;loc=d3e5710-111685<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LinesOfCreditCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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(13))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LinesOfCreditCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_NontradeReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -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)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NontradeReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6387103&amp;loc=d3e6435-108320<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 05<br> -Paragraph 5<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126905020&amp;loc=d3e5879-108316<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=6405834&amp;loc=d3e23315-112656<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,30)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695312076032">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">4,800,000<span></span>
</td>
<td class="nump">4,800,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">20,000,000<span></span>
</td>
<td class="nump">20,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">13,956,725<span></span>
</td>
<td class="nump">13,917,731<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">9,911,883<span></span>
</td>
<td class="nump">9,872,889<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">Treasury stock (in shares)</a></td>
<td class="nump">4,044,842<span></span>
</td>
<td class="nump">4,044,842<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Series A Preferred Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">200,000<span></span>
</td>
<td class="nump">200,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=SL123496158-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockShares</td>
</tr>
<tr>
<td style="padding-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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695224585616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 58,139<span></span>
</td>
<td class="nump">$ 39,386<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of sales</a></td>
<td class="nump">33,727<span></span>
</td>
<td class="nump">24,004<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">24,412<span></span>
</td>
<td class="nump">15,382<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Engineering, design and product development</a></td>
<td class="nump">8,570<span></span>
</td>
<td class="nump">7,475<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Selling and marketing</a></td>
<td class="nump">11,326<span></span>
</td>
<td class="nump">7,658<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">12,193<span></span>
</td>
<td class="nump">9,626<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Operating expenses</a></td>
<td class="nump">32,089<span></span>
</td>
<td class="nump">24,759<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating loss</a></td>
<td class="num">(7,677)<span></span>
</td>
<td class="num">(9,377)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpenseAbstract', window );"><strong>Interest and other income (expense):</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="num">(208)<span></span>
</td>
<td class="num">(157)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestIncomeDomesticDeposits', window );">Interest income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">61<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other, net</a></td>
<td class="num">(16)<span></span>
</td>
<td class="num">(283)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_GainFromEmployeeRetentionCredit', window );">Gain from employee retention credit</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,500<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainsLossesOnExtinguishmentOfDebt', window );">Gain on forgiveness of long-term debt</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,173<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Interest and other income (expense)</a></td>
<td class="num">(224)<span></span>
</td>
<td class="nump">3,294<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">(7,901)<span></span>
</td>
<td class="num">(6,083)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit</a></td>
<td class="nump">1,965<span></span>
</td>
<td class="nump">2,042<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net loss per common share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Shares used in per-share calculation:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_GainFromEmployeeRetentionCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of gain from the Employee Retention Credit, a refundable tax credit against certain employment taxes equal to 50% of the qualified wages an eligible employer pays to employees after March 12, 2020, and before January 1, 2021.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_GainFromEmployeeRetentionCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate cost of goods produced and sold and services rendered during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainsLossesOnExtinguishmentOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12355-112629<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12317-112629<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainsLossesOnExtinguishmentOfDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941158&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestIncomeDomesticDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Interest earned on deposits in United States money market accounts and other United States interest earning accounts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeDomesticDeposits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-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_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 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 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-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 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221467920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of tax</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="num">(222)<span></span>
</td>
<td class="nump">181<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</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="num">$ (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="num">$ (6,158)<span></span>
</td>
<td class="num">$ (3,860)<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_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<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(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e557-108580<br><br>Reference 4: 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(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: 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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<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 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-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>18
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228232720">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Treasury Stock [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Income (Loss) [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Dec. 31, 2020</a></td>
<td class="nump">$ 130<span></span>
</td>
<td class="nump">$ 42,536<span></span>
</td>
<td class="nump">$ 19,607<span></span>
</td>
<td class="num">$ (32,110)<span></span>
</td>
<td class="num">$ (38)<span></span>
</td>
<td class="nump">$ 30,125<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning balance (in shares) at Dec. 31, 2020</a></td>
<td class="nump">8,931,385<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of shares from exercise of stock options</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">436<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">436<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of shares from exercise of stock options (in shares)</a></td>
<td class="nump">97,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units (in shares)</a></td>
<td class="nump">50,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueNewIssues', window );">Issuance of common stock, net of issuance cost</a></td>
<td class="nump">$ 9<span></span>
</td>
<td class="nump">11,201<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">11,210<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Issuance of common stock, net of issuance cost (in shares)</a></td>
<td class="nump">842,375<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited', window );">Relinquishments of stock options and deferred stock units to pay withholding taxes</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">(133)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(133)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Relinquishments of stock options and deferred stock units to pay withholding taxes (in shares)</a></td>
<td class="num">(48,396)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Share-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">1,206<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,206<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of tax</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">181<span></span>
</td>
<td class="nump">181<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(4,041)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(4,041)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Dec. 31, 2021</a></td>
<td class="nump">$ 139<span></span>
</td>
<td class="nump">55,246<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
<td class="num">(32,110)<span></span>
</td>
<td class="nump">143<span></span>
</td>
<td class="nump">$ 38,984<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending balance (in shares) at Dec. 31, 2021</a></td>
<td class="nump">9,872,889<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13,917,731<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Sep. 30, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 39,361<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">(823)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Dec. 31, 2021</a></td>
<td class="nump">$ 139<span></span>
</td>
<td class="nump">55,246<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
<td class="num">(32,110)<span></span>
</td>
<td class="nump">143<span></span>
</td>
<td class="nump">$ 38,984<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending balance (in shares) at Dec. 31, 2021</a></td>
<td class="nump">9,872,889<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13,917,731<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of shares from exercise of stock options</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of shares from exercise of stock options (in shares)</a></td>
<td class="nump">17,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures', window );">Issuance of common stock on restricted stock units (in shares)</a></td>
<td class="nump">47,931<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited', window );">Relinquishments of stock options and deferred stock units to pay withholding taxes</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">(119)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(119)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Relinquishments of stock options and deferred stock units to pay withholding taxes (in shares)</a></td>
<td class="num">(26,437)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Share-based compensation expense</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">1,155<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,155<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustment, net of tax</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(222)<span></span>
</td>
<td class="num">(222)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(5,936)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(5,936)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Dec. 31, 2022</a></td>
<td class="nump">$ 139<span></span>
</td>
<td class="nump">$ 56,282<span></span>
</td>
<td class="nump">$ 9,630<span></span>
</td>
<td class="num">$ (32,110)<span></span>
</td>
<td class="num">$ (79)<span></span>
</td>
<td class="nump">$ 33,862<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Ending balance (in shares) at Dec. 31, 2022</a></td>
<td class="nump">9,911,883<span></span>
</td>
<td class="text">&#160;<span></span>
</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">13,956,725<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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126964447&amp;loc=d3e11149-113907<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 20<br> -Section 55<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126964447&amp;loc=d3e11178-113907<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 35<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126961718&amp;loc=d3e4534-113899<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669646-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-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_StockGrantedDuringPeriodValueSharebasedCompensationForfeited">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of forfeited shares granted under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph c(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued during the period related to Restricted Stock Awards, net of any shares forfeited.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221520432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net loss to net cash used in operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Share-based compensation expense</a></td>
<td class="nump">1,155<span></span>
</td>
<td class="nump">1,206<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">1,332<span></span>
</td>
<td class="nump">957<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax benefit</a></td>
<td class="num">(2,141)<span></span>
</td>
<td class="num">(2,121)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfProperty', window );">Loss on the disposal of fixed assets</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">9<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign currency transaction losses</a></td>
<td class="nump">6<span></span>
</td>
<td class="nump">272<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainsLossesOnExtinguishmentOfDebt', window );">Gain on forgiveness of long-term debt</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(2,173)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInReceivables', window );">Accounts receivable</a></td>
<td class="num">(6,421)<span></span>
</td>
<td class="num">(4,217)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable', window );">Employee retention credit receivable</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,500)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(4,378)<span></span>
</td>
<td class="nump">3,440<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidTaxes', window );">Prepaid income taxes</a></td>
<td class="nump">137<span></span>
</td>
<td class="nump">2,210<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other current and long-term assets</a></td>
<td class="nump">167<span></span>
</td>
<td class="nump">322<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">3,103<span></span>
</td>
<td class="nump">2,534<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities', window );">Accrued liabilities and other liabilities</a></td>
<td class="nump">754<span></span>
</td>
<td class="nump">592<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash used in operating activities</a></td>
<td class="num">(12,220)<span></span>
</td>
<td class="num">(2,510)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Capital expenditures</a></td>
<td class="num">(1,299)<span></span>
</td>
<td class="num">(1,384)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from the sale of fixed assets</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_PaymentsForProceedsFromNotesReceivable', window );">Collection of note receivable</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,598<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash (used in) provided by investing activities</a></td>
<td class="num">(1,299)<span></span>
</td>
<td class="nump">222<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Proceeds from bank borrowings</a></td>
<td class="nump">2,250<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from stock option exercises</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">436<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from the issuance of common stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">12,214<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfStockIssuanceCosts', window );">Payment of common stock issuance costs</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,014)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Withholding taxes paid on stock issuance</a></td>
<td class="num">(119)<span></span>
</td>
<td class="num">(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="Show.showAR( this, 'defref_us-gaap_PaymentsOfLoanCosts', window );">Payment of bank financing costs</a></td>
<td class="num">(69)<span></span>
</td>
<td class="num">(31)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash provided by financing activities</a></td>
<td class="nump">2,062<span></span>
</td>
<td class="nump">11,472<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(54)<span></span>
</td>
<td class="num">(86)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">(Decrease) increase in cash and cash equivalents</a></td>
<td class="num">(11,511)<span></span>
</td>
<td class="nump">9,098<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, beginning of period</a></td>
<td class="nump">19,457<span></span>
</td>
<td class="nump">10,359<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents, end of period</a></td>
<td class="nump">7,946<span></span>
</td>
<td class="nump">19,457<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental cash flow information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest paid</a></td>
<td class="nump">129<span></span>
</td>
<td class="nump">76<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaid', window );">Income taxes paid</a></td>
<td class="nump">62<span></span>
</td>
<td class="nump">57<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Non-cash capital expenditure items</a></td>
<td class="nump">$ 54<span></span>
</td>
<td class="nump">$ 82<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in current assets classified as employee retention credit receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_PaymentsForProceedsFromNotesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net amount associated with payments for (receipts from) principal collections from a borrowing supported by a written promise to pay an obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_PaymentsForProceedsFromNotesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4332-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4313-108586<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3044-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=SL98516268-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 230<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123444420&amp;loc=d3e33268-110906<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ForeignCurrencyTransactionGainLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=125521441&amp;loc=d3e30690-110894<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 35<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=123602790&amp;loc=d3e30226-110892<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -URI https://asc.fasb.org/extlink&amp;oid=126980362&amp;loc=d3e28228-110885<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124440516&amp;loc=d3e30840-110895<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GainLossOnSaleOfProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of oil and gas property or timber property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfProperty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GainsLossesOnExtinguishmentOfDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12355-112629<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 50<br> -Section 40<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126972273&amp;loc=d3e12317-112629<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainsLossesOnExtinguishmentOfDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4297-108586<br><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 25<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in accrued expenses, and obligations classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the total amount due within one year (or one operating cycle) from all parties, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash 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="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 https://asc.fasb.org/extlink&amp;oid=126999549&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 https://asc.fasb.org/extlink&amp;oid=126954810&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 https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfLoanCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for loan origination associated cost which is usually collected through escrow.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfLoanCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsOfStockIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for cost incurred directly with the issuance of an equity security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfStockIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<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(f))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695230073312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of business<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DescriptionOfBusinessAbstract', window );"><strong>Description of business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NatureOfOperations', window );">Description of business</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">1. Description of business</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Technologies Incorporated (together with its subsidiaries, &#8220;TransAct,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;us,&#8221; or &#8220;our&#8221;), which has its headquarters in Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in one operating segment: software-driven technology and printing solutions for high growth markets including food service technology, casino and gaming and &#8220;point of sale&#8221; (&#8220;POS&#8221;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold under the BOHA!<sup>TM</sup>, AccuDate&#8482;, Epic, Ithaca&#174;, and EPICENTRAL product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our two software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and food service operators and (ii) the EPICENTRAL Print System (&#8220;EPICENTRAL&#8221;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Impact of the COVID-19 Pandemic and Global Supply Chain Disruptions</div>

<div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures, which have increased our costs and, in some instances, slowed our ability to deliver products to our customers.&#160; During 2021, our inventory levels decreased significantly as a result of these supply chain disruptions, and we experienced significantly lower sales levels.&#160; However, during 2022 we were able to increase our inventory levels and minimize the impact to our customers by successfully modifying our products that were affected by supply chain disruptions, as well as sourcing component parts from alternate suppliers.&#160; Although we were able to increase inventory levels during 2022 and expect to continue to do so in 2023, there can be no assurance that new or continuing supply chain disruptions will not affect our products or that we will be able to make timely modifications to address any future supply chain issues that arise.&#160; Further, while we have offset most of our cost increases by increasing prices of our products, there can be no guarantee that we will be able to offset any future cost increases should they arise.&#160; After a slowdown in the first quarter of 2022 resulting from the Omicron and other variants of COVID-19, we continued to experience demand recovery during the remainder of 2022. Based on our strong backlog position and continued market expansion, we expect this recovery to continue into 2023, though the exact timing and pace of recovery may be impacted by global economic conditions.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">Balance Sheet, Cash Flow and Liquidity. </span>We have taken the following actions to increase liquidity and strengthen our financial position in an effort to mitigate the negative impacts from the COVID-19 pandemic, supply chain disruptions and inflationary pressures:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt;"/>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Public Offering &#8211; On August 16, 2021, the Company raised net proceeds of $11.2 million (including the exercise of the underwriters overallotment option on August 20, 2021), after deducting underwriting discounts, commissions and offering expenses, through an underwritten public offering and sold an aggregate of 842,375 shares of common stock.</div></td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt;"/>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP Loan &#8211; On May 1, 2020, the Company was granted a $2.2 million loan (the &#8220;PPP Loan&#8221;) under the Paycheck Protection Program (the &#8220;PPP&#8221;) administered by the Small Business Administration (&#8220;SBA&#8221;) established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security (&#8220;CARES&#8221;) Act, which enabled us to return employees we furloughed earlier in 2020 to full time employment and to restore employees to full pay following certain pay cuts.&#160; On July 8, 2021, we received notice that the PPP Loan had been forgiven as of July 1, 2021.&#160; See Note 8 for further details regarding the PPP Loan.</div></td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt;"/>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Employee Retention Credit &#8211; Under the provisions of the CARES Act, the Company is eligible for a refundable employee retention credit subject to certain criteria.&#160;&#160;In connection with the CARES Act, the Company recognized the employee retention credit during the fourth quarter of 2021 and recorded $1.5 million as &#8220;Gain from employee retention credit&#8221; in the Consolidated Statement of Operations for the year ended December 31, 2021 and the related receivable as &#8220;Employee retention credit receivable&#8221; in the Consolidated Balance Sheet as of December 31, 2021 and 2022.&#160; We received these funds in the first quarter of 2023.</div></td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt;"/>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On March 13, 2020, we entered into a Credit Facility with Siena Lending Group LLC that provides a revolving credit line of up to $10.0 million, subject to a borrowing base and on July 19, 2022, we entered into an amendment to extend the maturity of the facility to March 13, 2025. See Note 8 for further details regarding this facility.</div></td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt;"/>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#9679;</td>
    <td style="width: auto; vertical-align: top; text-align: justify;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Reduced Capital Expenditures &#8211; We limited capital expenditures during 2020 and 2021 and gradually increased these expenditures during 2022 as sales improved.</div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">After reviewing whether conditions and/or events raise substantial doubt about our ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this &#8220;Form 10-K&#8221; were issued, including consideration of the actions taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Use of Assumptions and Estimates</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Management&#8217;s belief that the Company will be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation, rising interest rates, capital expenditures and other operating costs. Our current assumptions are that casinos and restaurants will remain open and consumer traffic will continue to increase during the balance of 2023. Though demand for our products at casinos has increased substantially in 2022, and we expect this trend to continue, we cannot predict the ultimate impact of the current economic environment, including inflation, rising interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn or slower than anticipated economic recovery. However, despite our significant backlog of orders as of December 31, 2022 and increasing market share during 2022, should such conditions arise, we believe we will be able to take additional financial and operational actions to cut costs and/or increase liquidity.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Smaller Reporting Company</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide audited financial statements for three years.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">We may lose our status as a smaller reporting company on the last day of the fiscal year in which we have (i) public float of at least $250 million as of the last day of the second fiscal quarter and (ii) if we have a public float that does not exceed $700 million as of the last day of the second fiscal quarter and at least $100 million in annual revenues. </span></div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DescriptionOfBusinessAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DescriptionOfBusinessAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_NatureOfOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -URI https://asc.fasb.org/topic&amp;trid=2134479<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NatureOfOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695231147888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock', window );">Summary of significant accounting policies</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">2. Summary of significant accounting policies</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> The preparation of Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Segment reporting</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">: </span>We apply the provisions of the Financial Accounting Standards Board (&#8220;FASB&#8221;) Accounting Standards Codification (&#8220;ASC&#8221;) 280, &#8220;Segment Reporting.&#8221;&#160; We view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and printing solutions and providing printer and terminal related software, services, supplies and spare parts.&#160; Factors used to identify TransAct&#8217;s single operating segment include the organizational structure of the Company and the financial information available for evaluation by the chief operating decision-maker in making decisions about how to allocate resources and assess performance.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We consider all highly liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Allowance for doubtful accounts</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We establish an allowance for doubtful accounts to ensure trade receivables are valued appropriately.&#160; We maintain an allowance for doubtful accounts based on a variety of factors, including the length of time receivables are past due, significant one-time events and historical experience.&#160; We record a specific allowance for individual accounts when we become aware of a customer&#8217;s inability to meet its financial obligations, such as in the case of bankruptcy filings or deterioration in the customer&#8217;s operating results or financial position.&#160; If circumstances related to customers change, we further adjust estimates of the recoverability of receivables.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table summarizes the activity recorded in the valuation account for accounts receivable:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Years Ended </span>December 31<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">,</span></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">220</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to costs and expenses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">140</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deductions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(8</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">351</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#8220;first-in, first-out&#8221; (&#8220;FIFO&#8221;) costing methodology to the average costing methodology. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of the change in accounting principle during the second quarter of 2022.</span></div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is recognized.&#160; Depreciation expense was $1.1 million and $0.7 million in 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use asset&#8221; and &#8220;Lease liability&#8221; in our Consolidated Balance Sheets.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On April 26, 2022, we entered into an amendment to modify the expiration date of our lease on our Las Vegas, Nevada facility. The lease was set to expire on November 1, 2022 and the amendment extended the lease term to November 30, 2025. The lease amendment resulted in an increase to the right-of-use-asset and lease liability of $0.8 million. The lease amendment modified the base rent.&#160; On April 30, 2021, we entered into an amendment to modify the expiration date of our lease on our Hamden, CT facility.&#160; The lease, which was last amended on January 3, 2017, was scheduled to expire on April 30, 2027.&#160; The lease amendment modified the expiration date to October 31, 2025.&#160; The modification resulted in reducing the right-of-use-asset and lease liability by $0.3 million.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to four years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Goodwill and intangible assets</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2022 when our annual review for impairment was performed.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer and our performance obligation is completed.</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment approach.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31, 2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,602</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">762</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,657</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,686</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,343</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,089</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">998</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">44,034</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Year Ended </span>December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,738</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">887</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,817</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,173</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,129</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">171</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">460</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,501</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">502</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32,400</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Contract balances</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2022, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2021.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">392</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">314</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">163</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">308</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Customer pre-payments</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(101</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(99</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,329</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(805</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(143</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(186</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,018</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(468</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our customer.&#160; As of December 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $29.0 million. The Company expects to recognize revenue on $28.7 million of its remaining performance obligations within the next 12 months following December 31, 2022, $0.2 million within the next <span style="-sec-ix-hidden:Fact_0fb767fdbb19460d8f1b18e429c9fbeb">24</span> months following December 31, 2022 and the balance of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_2611232e0afb4269a39e68f37603f983">36</span> months following December 31, 2022.</div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chain Link Services</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">NCR Corporation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Bright Group</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to customers representing 10% or more of total net sales were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">IGT</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>

<div style="text-align: left;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $8.6 million and $7.5 million of research and development expenses in 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been included in cost of sales over the estimated life of the product.&#160; During 2019, we contracted several third-parties to develop software for our food service technology products, the cost for which we capitalized.&#160; Unamortized development costs for such software was $242 thousand and $396 thousand as of December 31, 2022 and 2021, respectively. The total amount charged to cost of sales for capitalized software development costs was $154 thousand in both 2022 and 2021.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in selling and marketing expense on the accompanying Consolidated Statements of Operations for 2022 and 2021 totaled $3.1 million and $1.8 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.&#160; We assess the likelihood that net deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. </div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated Statements of Operations.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#160;</span>At December 31, 2022, we have share-based employee compensation plans, which are described more fully in Note 9 - Stock incentive plans. We account for those plans under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the employee&#8217;s requisite service period.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of the option, stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Net loss per share:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore, these instruments are excluded from the computation of diluted EPS.&#160; See Note 11 - Earnings per share.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Change in accounting principle:</span>&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of a change in accounting principle which occurred in the second quarter of 2022. TransAct changed its method of inventory valuation from standard costing which approximates first-in first-out (&#8220;FIFO&#8221;) to the average costing methodology. All prior periods presented have been retrospectively adjusted to apply the new method of accounting. Certain prior period amounts have been adjusted to conform with the current year presentation</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span></div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Reclassifications:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#160;</span>Certain reclassifications have been made to prior year financial statements to conform to classifications used in the current year.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI https://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695310564912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventories [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">3. Inventories</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of inventories are:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Raw materials and purchased component parts</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,884</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,499</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Work-in-process</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Finished goods</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,201</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,028</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,711</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">see Note 16, Change in Accounting Principle</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226156672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fixed assets, net<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets, net [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Fixed assets, net</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">4. Fixed assets, net</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of fixed assets, net are:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tooling, machinery and equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,859</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,694</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Furniture and office equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,882</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,660</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Computer software and equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,348</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,973</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leasehold improvements</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,883</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,872</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,972</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18,199</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less: Accumulated depreciation and amortization</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(17,656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(16,736</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,316</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,463</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Construction in-process</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">465</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,221</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,781</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,684</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI https://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226237696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets, net<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Intangible assets, net [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible assets, net</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">5. Intangible assets, net</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span>&#160;</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Purchased technology</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,591</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,349</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,591</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,195</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Patents</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(14</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,606</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,364</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,606</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,209</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Amortization expense was $155 thousand and $186 thousand in 2022 and 2021, respectively.&#160; Amortization expense for each of the next five years ending December 31 is expected to be as follows: $154 thousand in 2023 and $88 thousand in 2024; and none thereafter.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -URI https://asc.fasb.org/subtopic&amp;trid=2144471<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226077616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued liabilities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Accrued liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued liabilities</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">6. Accrued liabilities</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of accrued liabilities are:</div>

<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Salaries and compensation related</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,744</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,854</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">530</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">79</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Professional and consulting</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">371</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">285</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">432</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">676</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,077</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,894</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>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),20,24)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226156672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement savings plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement savings plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock', window );">Retirement savings plan</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">7. Retirement savings plan</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date of hire.&#160; We match employees&#8217; contributions at a rate of 50% of employees&#8217; contributions up to the first 6% of the employees&#8217; compensation contributed to the 401(k) plan.&#160; Our matching contributions were $355 thousand and $312 thousand in 2022 and 2021, respectively.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 712<br> -URI https://asc.fasb.org/topic&amp;trid=2197446<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -URI https://asc.fasb.org/topic&amp;trid=2127225<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI https://asc.fasb.org/topic&amp;trid=2235017<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndEmployeeBenefitPlansTextBlock</td>
</tr>
<tr>
<td style="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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226058736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Borrowings<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Borrowings</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">8. Borrowings</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">Credit Facility</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On March 13, 2020, we entered into a credit facility (the &#8220;Siena Credit Facility&#8221;) with Siena Lending Group LLC (the &#8220;Lender&#8221;) and terminated our credit facility with TD Bank, N.A. The Siena Credit Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility was $245 thousand, which were reported as &#8220;Other current assets&#8221; in current assets and &#8220;Other assets&#8221; in non-current assets in the Consolidated Balance Sheets. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility are secured by a lien on substantially all the assets of the Company.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Siena Credit Facility imposes a financial covenant on the Company and borrowings are subject to a borrowing base based on (i) 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and (b) 50% of eligible raw material and 60% of finished goods inventory and restricts, among other things, our ability to incur additional indebtedness and create other liens. The three-month period from April 1, 2020 to June 30, 2020 was the first period we were subject to the original financial covenant, which required the Company to maintain a minimum EBITDA and continued through the 12-month period from April 1, 2020 to March 31, 2021. On July 21, 2021, the Company entered into an amendment (&#8220;Siena Credit Facility Amendment No. 1&#8221;) to the Siena Credit Facility. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month ending July 31, 2021. From July 31, 2021 through December 31, 2022, we remained in compliance with our excess availability covenant. As of December 31, 2022, we had $2.3 million of outstanding borrowings under the Siena Credit Facility and $3.9 million of net borrowing capacity available under the Siena Credit Facility.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#8220;Siena Credit Facility Amendment No. 2&#8221;) to the Siena Credit Facility, as amended by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#8220;Amended Fee Letter&#8221;) in connection with the Siena Credit Facility Amendment No. 2. The Siena Credit Facility Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The changes to the Siena Credit Facility provided for in Siena Credit Facility Amendment No. 2 include, among other things, the following:</div>

<div><br/></div>

<div>
<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(i)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The extension of the maturity date from March 13, 2023 to March 13, 2025; and</div></td>
  </tr>
</table>
</div>

<div><br/></div>

<div>
<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 36pt; vertical-align: top; text-align: right;"><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(ii)</div></td>
    <td style="width: auto; vertical-align: top;"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The termination of the existing blocked account control agreement and entry into a new &#8220;springing&#8221; deposit account control agreement, permitting the Company to direct the use of funds in its deposit account until such time as (a) the sum of excess availability under Siena Credit Facility (as amended) and unrestricted cash is less than $5 million for 3 consecutive business days or (b) an event of default occurs and is continuing.</div></td>
  </tr>
</table>
</div>

<div style="display:none;"><br/></div>
<div style="text-align: justify; text-indent: -18pt; margin-left: 36pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In addition, the Amended Fee Letter requires the Company, while it retains the ability to direct the use of funds in the deposit account, to maintain outstanding borrowings of at least $2,250,000 in principal amount. If the Company does not have the ability to direct the use of funds in the deposit account, then the Amended Fee Letter requires the Company to pay interest on at least $2,250,000 principal amount of loans, whether or not such amount of loans is actually outstanding.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;">PPP Loan</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On May 1, 2020, the Company was granted the PPP Loan from Berkshire Bank in the aggregate amount of $2.2 million, pursuant to the PPP. Under the terms of the PPP, the PPP Loan would be forgiven to the extent that funds from the PPP Loan were used for payroll costs and costs to continue group health care benefits, as well as for interest on mortgage obligations incurred before February 15, 2020, rent under lease agreements in effect before February 15, 2020, utilities for which service began before February 15, 2020, and interest on debt obligations incurred before February 15, 2020, subject to conditions and limitations provided in the CARES Act. At least 60% (under the PPP terms, as amended) of the proceeds from the PPP Loan were required to be used for eligible payroll costs for the PPP Loan to be forgiven.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On July 8, 2021, the Company received notifications from Berkshire Bank and the SBA that the PPP Loan (including all interest accrued thereon) of $2.2 million had been fully forgiven by the SBA and that the forgiveness payment date was July 1, 2021. The forgiveness of the PPP Loan was reported as &#8220;Gain on forgiveness of long-term debt&#8221; in the Consolidated Statement of Operations during the year ended December 31, 2021.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -URI https://asc.fasb.org/topic&amp;trid=2208564<br><br>Reference 2: 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 (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 3: 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 1C<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 4: 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 1I<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 5: 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 1I<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<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(c))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: 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 (g)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 8: 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 1C<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 9: 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 1C<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495334-112611<br><br>Reference 10: 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 1E<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495348-112611<br><br>Reference 11: 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> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br><br>Reference 12: 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 1I<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495371-112611<br><br>Reference 13: 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 (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=123466505&amp;loc=SL123495323-112611<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228457104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock incentive plans</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">9. Stock incentive plans</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Stock incentive plans</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">.</span>&#160; We currently have two stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans have exercise prices equal to 100% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a ten-year term and generally vest over a two-year to four-year period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the 2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2020, we are authorized to grant awards of up to 2,200,000 shares of TransAct common stock.&#160; At December 31, 2022, 347,652 shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2022 and 2021 was $4.39 and $5.41, respectively.&#160; We also issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock units was $8.43 and $10.27 in 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2022 and 2021 and a discussion of our methodology for developing each of the assumptions used in the valuation model:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected option term (in years)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected volatility</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">50.5</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Risk-free interest rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Dividend yield</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Expected Option Term</span> - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted have a maximum term of ten years and an increase in the expected term will increase compensation expense.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Expected Volatility</span> &#8211; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of the grant.&#160; An increase in the expected volatility factor will increase compensation expense.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Risk-Free Interest Rate</span> - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will increase compensation expense.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Dividend Yield</span> &#8211;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will decrease compensation expense.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For both 2022 and 2021, we recorded $1.2 million of share-based compensation expense included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also recorded income tax benefits of $0.3 million in both 2022 and 2021, related to such share-based compensation.&#160; At December 31, 2022, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.</div>

<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan is summarized below:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted Stock Units</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Shares</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Units</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2021</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,269,355</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.18</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">155,225</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Granted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">181,100</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.16</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">129,700</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.78</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Exercised</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(17,500</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6.70</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(47,931</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.22</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Forfeited</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(49,250</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.38</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(22,708</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.27</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expired</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(27,750</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.51</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2022</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,355,955</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">214,286</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average exercise price per share</div></td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average grant stock price per share</div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2022:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards That Are Exercisable</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,355,955</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.08</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">224</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5.0</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">971,865</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.23</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">93</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 20%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted stock units</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">145,687</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">921</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.1</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average exercise price per share</div></td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted-average contractual remaining term in years</div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2022, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $2.1 million, which is expected to be recognized over a weighted average period of 2.6 years.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The total fair value of awards vested was $1.6 million and $1.7 million during the years ended December 31, 2022 and 2021, respectively.&#160; The total intrinsic value (which is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2022 and 2021 was $40 thousand and $268 thousand, respectively, and cash received from option exercises was <span style="-sec-ix-hidden:Fact_b7a5dc04200f41ee9ee14fafb453e89a">zero</span> and $436 thousand in 2022 and 2021, respectively.&#160; 17,500 and 97,000 stock options were exercised during the year ended December 31, 2022 and 2021, respectively.&#160; We recorded a realized tax provision in 2022 and 2021 from equity-based awards of $13 thousand and $35 thousand, respectively, related to options exercised.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226092064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income taxes [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income taxes</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">10. Income taxes</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of the income tax benefit are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">149</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">26</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">110</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(83</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">176</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">79</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,924</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,057</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(217</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(62</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,141</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,965</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,042</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Our effective tax rates were (</span>24.9%<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">) and (</span>33.6%<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">) for </span>2022<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and </span>2021<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">, respectively.&#160; The tax benefit recorded for 2022 includes the recognition of stock option cancellations for which no benefit was realized and the benefit recorded for 2021 included the recognition of the gain on the forgiveness of the PPP Loan which was not taxable</span>.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">At December 31, 2022, we have $10.9 million of federal net operating loss carryforwards (with an unlimited carryforward), $0.2 million of tax-effected state net operating loss carryforwards (which have varying lives), $1.2 million in R&amp;D credit carryforwards (which generally have a twenty year life), and no state tax credit carryforwards.&#160; Foreign income (loss) before taxes was $24 thousand and ($404) thousand in 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our deferred tax assets and liabilities were comprised of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,297</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,978</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">676</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">624</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">149</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Capitalized R&amp;D expenses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,708</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventory reserves</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">648</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">710</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">41</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Warranty reserve</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">22</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock compensation expense</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">769</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">796</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other accrued compensation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">222</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">308</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit carryforward</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,238</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">901</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other liabilities and reserves</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">463</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">250</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,228</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,919</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -18pt; margin-left: 45pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,572</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,186</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax liabilities:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">196</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">49</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax liabilities</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">245</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,327</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,143</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022 and 2021, we had a $656 thousand and $733 thousand, respectively, of valuation allowances on our net operating loss carryforwards. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">659</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Subtractions released to income tax provisions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(77</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to income tax provision</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">74</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal statutory rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP loan forgiveness</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock award excess tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State income taxes, net of federal income taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Business meals and entertainment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Miscellaneous permanent items</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Uncertain tax positions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.5</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock option cancellations</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.6</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance and tax accruals</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective tax rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">33.6</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We had $142 thousand and $144 thousand of total gross unrecognized tax benefits at December 31, 2022 and 2021, respectively that, if recognized, would favorably affect the effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tax positions taken during the current period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">26</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">47</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lapse of statute of limitations</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">142</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We expect $28 thousand of the $142 thousand of unrecognized tax benefits will reverse in 2023 upon the expiration of the statute of limitations.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We recognize interest and penalties related to uncertain tax positions in the income tax provision.&#160; We have accrued interest and penalties related to uncertain tax positions of $34 thousand and $20 thousand as of December 31, 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S. federal income tax, state and local, and foreign tax matters through 2018.&#160; However, our federal tax returns for the years 2019 through 2022 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32857-109319<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330215-122817<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 14<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI https://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226156672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings per share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings per share</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">11. Earnings per share</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(5,936</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,905</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,905</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.60</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.60</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as 2022 and 2021, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive stock awards excluded from the computation of earnings per dilutive share were 1,463,000 and 391,000 at December 31, 2022 and 2021, respectively.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<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 (c)<br> -URI https://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> -URI https://asc.fasb.org/topic&amp;trid=2144383<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 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226137296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock repurchase program<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Stock repurchase program [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockTextBlock', window );">Stock repurchase program</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">12. Stock repurchase program</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160; Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2022 and 2021, we did not repurchase any shares of our common stock.&#160; From January 1, 2005 through December 31, 2019, we repurchased a total of 4,044,842 shares of common stock for $32.1 million, at an average price of $7.94 per share.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -URI https://asc.fasb.org/subtopic&amp;trid=2208821<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockTextBlock</td>
</tr>
<tr>
<td style="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>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226077616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Geographic area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Geographic area information</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">13. Geographic area information</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the location of the customer and asset.</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">44,034</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32,400</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Fixed assets, net:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,252</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,770</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">529</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">914</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,781</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,684</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to international customers were 24% and 18% of total sales in 2022 and 2021, respectively.&#160; Sales to Europe represented 68% and 53%, sales to the Pacific Rim (which includes Australia and Asia) represented 28% and 35%, and sales to Canada represented 4% and 11%&#160; of total international sales in 2022 and 2021, respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 34<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8981-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 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8721-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 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-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 (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<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 26<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8844-108599<br><br>Reference 8: 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> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 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 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 12: 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 15<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8657-108599<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 21<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8721-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI https://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226156672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">14. Leases</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Operating lease expense was $</span>1.0<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> million for both years ended December 31, </span>2022<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and </span>2021<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> and is reported as </span>&#8220;Cost of sales,&#8221; &#8220;Engineering, design and product development expense,&#8221; &#8220;Selling and marketing expense,&#8221; and &#8220;General and administrative expense&#8221; in the Consolidated Statements of Operations.&#160; <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Operating costs include short-term lease costs, which were immaterial during the period.</span></div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating cash outflows from leases</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">967</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">982</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes additional information related to our leases:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average remaining lease term (in years)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.5</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average discount rate</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.5</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.4</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2023</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">972</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2024</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2025</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">710</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2026</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">20</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total undiscounted lease payments</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,724</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less imputed interest</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">166</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total lease liabilities</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,558</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI https://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226239360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationTextBlock', window );">Quarterly results of operations (unaudited)</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">15. Quarterly results of operations (unaudited)</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our quarterly results of operations for 2022 and 2021 are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Quarter Ended</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 31</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">June 30</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">September 30</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,702</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,623</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,856</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,958</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,434</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,193</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,348</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,376</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">528</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">260</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.44</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.05</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.03</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.44</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.05</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.03</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021:</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,301</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,325</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,637</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,123</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,339</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,432</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,305</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,089</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,030</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">901</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.09</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_QuarterlyFinancialInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -URI https://asc.fasb.org/topic&amp;trid=2126967<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1B<br> -URI https://asc.fasb.org/extlink&amp;oid=126900988&amp;loc=SL124452896-108306<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationTextBlock</td>
</tr>
<tr>
<td style="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>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226150816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Change in accounting principle [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">Change in accounting principle</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">16.&#160; Change in accounting principle</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the FIFO costing methodology to the average costing methodology. We believe this methodology is preferable because it reflects a better estimate of inventory cost as we do not typically perform intensive manufacturing of our finished products, which are therefore better measured under average cost. In addition, our business is projected to include an increasing sales volume of software going forward, which better aligns with average costing. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. Tax effects are calculated at the Company&#8217;s marginal tax rate, or the tax impact of incremental income changes rather than the average tax rate applied to our total net loss before income taxes. The following financial statement line items for the periods presented were impacted by the change in accounting principle.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Balance Sheets for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,720</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,711</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,141</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,143</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The ending balance in retained earnings as of December 31, 2020 was adjusted from $19,718 to $19,607.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Operations for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cost of sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,705</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,817</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24,137</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24,004</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(133</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,418</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,249</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,382</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,485</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,597</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9,510</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9,377</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loss before income taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,124</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,236</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(6,216</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(6,083</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">389</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">413</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,071</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,042</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(29</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.07</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.01</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.45</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.02</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.07</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.01</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.45</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.02</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares used in per-share calculation:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Comprehensive Loss for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Comprehensive loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(662</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(750</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(3,964</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(3,860</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Cash Flows for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,150</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,440</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(133</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Changes in Shareholders&#8217; Equity for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity beginning balance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,280</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,361</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">81</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,236</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,125</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(111</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; white-space: nowrap;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">16,308</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">16,389</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">81</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,718</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,607</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(111</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity ending balance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,991</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,984</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,991</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,984</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-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_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -URI https://asc.fasb.org/topic&amp;trid=2122394<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 105<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126987489&amp;loc=SL124442142-165695<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126986314&amp;loc=SL124402458-218513<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<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 1<br> -Subparagraph (b)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<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 https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<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 (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126986314&amp;loc=SL124402458-218513<br><br>Reference 10: 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)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038215&amp;loc=d3e31137-122693<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122640432&amp;loc=SL121648383-210437<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 10<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122640432&amp;loc=SL121648383-210437<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 848<br> -SubTopic 10<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=125980421&amp;loc=SL122150809-237846<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section S99<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=122038215&amp;loc=SL108384541-122693<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 10<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128293352&amp;loc=SL126838806-209984<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 65<br> -Paragraph 6<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 20: 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 2<br> -Subparagraph (c)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 10<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128293352&amp;loc=SL126838806-209984<br><br>Reference 22: 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 2<br> -Subparagraph (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br><br>Reference 25: 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 2<br> -Subparagraph (c)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL126732908-238011<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 28: 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 (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=120154821&amp;loc=SL120154904-197079<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983955&amp;loc=SL121967933-165497<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 848<br> -SubTopic 10<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=125980421&amp;loc=SL125981372-237846<br><br>Reference 32: 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 (c)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 33: 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)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=126983759&amp;loc=SL121830611-158277<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226127104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>Subsequent events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent events</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">17. Subsequent events</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">In the first quarter of 2023, we collected the $1.5 million employee retention credit receivable from the U.S. Government. The Company has evaluated all other events or transactions that occurred up to the date the consolidated financial statements were available to issue. Based upon this review, the Company did not identify any other subsequent events that would have required adjustment or disclosure in the consolidated financial statements.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -URI https://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695312065536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Principles of consolidation</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Principles of consolidation: </span>The accompanying Consolidated Financial Statements include the audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. </div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of estimates</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Use of estimates</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> The preparation of Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;GAAP&#8221;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Segment reporting</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Segment reporting</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">: </span>We apply the provisions of the Financial Accounting Standards Board (&#8220;FASB&#8221;) Accounting Standards Codification (&#8220;ASC&#8221;) 280, &#8220;Segment Reporting.&#8221;&#160; We view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and printing solutions and providing printer and terminal related software, services, supplies and spare parts.&#160; Factors used to identify TransAct&#8217;s single operating segment include the organizational structure of the Company and the financial information available for evaluation by the chief operating decision-maker in making decisions about how to allocate resources and assess performance.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and cash equivalents</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Cash and cash equivalents</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We consider all highly liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy', window );">Allowance for doubtful accounts</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Allowance for doubtful accounts</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We establish an allowance for doubtful accounts to ensure trade receivables are valued appropriately.&#160; We maintain an allowance for doubtful accounts based on a variety of factors, including the length of time receivables are past due, significant one-time events and historical experience.&#160; We record a specific allowance for individual accounts when we become aware of a customer&#8217;s inability to meet its financial obligations, such as in the case of bankruptcy filings or deterioration in the customer&#8217;s operating results or financial position.&#160; If circumstances related to customers change, we further adjust estimates of the recoverability of receivables.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table summarizes the activity recorded in the valuation account for accounts receivable:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Years Ended </span>December 31<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">,</span></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">220</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to costs and expenses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">140</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deductions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(8</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">351</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Inventories:</span> Inventories are stated at the lower of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#8220;first-in, first-out&#8221; (&#8220;FIFO&#8221;) costing methodology to the average costing methodology. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. <span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of the change in accounting principle during the second quarter of 2022.</span></div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Fixed assets</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Fixed assets:</span> Fixed assets are stated at cost.&#160; Depreciation is recorded using the straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is recognized.&#160; Depreciation expense was $1.1 million and $0.7 million in 2022 and 2021, respectively.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Leases:</span> We account for leases in accordance with ASC 842, &#8220;Leases&#8221; (&#8220;ASC 842&#8221;), which requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#8220;Right-of-use asset&#8221; and &#8220;Lease liability&#8221; in our Consolidated Balance Sheets.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">On April 26, 2022, we entered into an amendment to modify the expiration date of our lease on our Las Vegas, Nevada facility. The lease was set to expire on November 1, 2022 and the amendment extended the lease term to November 30, 2025. The lease amendment resulted in an increase to the right-of-use-asset and lease liability of $0.8 million. The lease amendment modified the base rent.&#160; On April 30, 2021, we entered into an amendment to modify the expiration date of our lease on our Hamden, CT facility.&#160; The lease, which was last amended on January 3, 2017, was scheduled to expire on April 30, 2027.&#160; The lease amendment modified the expiration date to October 31, 2025.&#160; The modification resulted in reducing the right-of-use-asset and lease liability by $0.3 million.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to four years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock', window );">Goodwill and intangible assets</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Goodwill and intangible assets</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">:</span> We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#8220;Goodwill,&#8221; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#8217;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2022 when our annual review for impairment was performed.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue recognition</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Revenue recognition:</span> We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#8217;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the &#8220;expected value&#8221; method or the &#8220;most likely amount&#8221; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#8217;s judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#8217;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer and our performance obligation is completed.</div>

<div style="text-align: justify;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#8220;standalone selling price&#8221; method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment approach.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31, 2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,602</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">762</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,657</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,686</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,343</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,089</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">998</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">44,034</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Year Ended </span>December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,738</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">887</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,817</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,173</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,129</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">171</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">460</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,501</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">502</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32,400</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Contract balances</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included within &#8220;Accounts Receivable, net&#8221; and &#8220;Other Assets&#8221; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#8220;Accrued Liabilities&#8221; in current liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2022, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2021.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">392</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">314</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">163</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">308</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Customer pre-payments</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(101</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(99</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,329</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(805</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(143</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(186</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,018</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(468</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Remaining performance obligations</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our customer.&#160; As of December 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $29.0 million. The Company expects to recognize revenue on $28.7 million of its remaining performance obligations within the next 12 months following December 31, 2022, $0.2 million within the next <span style="-sec-ix-hidden:Fact_0fb767fdbb19460d8f1b18e429c9fbeb">24</span> months following December 31, 2022 and the balance of these remaining performance obligations within the next <span style="-sec-ix-hidden:Fact_2611232e0afb4269a39e68f37603f983">36</span> months following December 31, 2022.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentration of credit risk</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Concentration of credit risk:</span>&#160; Financial instruments that potentially expose us to concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chain Link Services</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">NCR Corporation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Bright Group</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to customers representing 10% or more of total net sales were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">IGT</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Engineering, design and product development</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Engineering, design and product development:</span> Engineering, design and product development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $8.6 million and $7.5 million of research and development expenses in 2022 and 2021, respectively.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been included in cost of sales over the estimated life of the product.&#160; During 2019, we contracted several third-parties to develop software for our food service technology products, the cost for which we capitalized.&#160; Unamortized development costs for such software was $242 thousand and $396 thousand as of December 31, 2022 and 2021, respectively. The total amount charged to cost of sales for capitalized software development costs was $154 thousand in both 2022 and 2021.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Advertising:</span> Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in selling and marketing expense on the accompanying Consolidated Statements of Operations for 2022 and 2021 totaled $3.1 million and $1.8 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income taxes</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Income taxes:</span> The income tax amounts reflected in the accompanying Consolidated Financial Statements are accounted for under the liability method in accordance with ASC 740, &#8220;Income Taxes&#8221; (&#8220;ASC 740&#8221;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.&#160; We assess the likelihood that net deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. </div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency Translation</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Foreign currency translation:</span> The financial position and results of operations of our foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been translated at the weighted average rate for the period, and shareholders&#8217; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#8217; equity as a cumulative translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated Statements of Operations.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Share-based payments</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Share-based payments:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#160;</span>At December 31, 2022, we have share-based employee compensation plans, which are described more fully in Note 9 - Stock incentive plans. We account for those plans under the recognition and measurement principles of ASC 718, &#8220;Compensation &#8211; Stock Compensation.&#8221;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the employee&#8217;s requisite service period.</div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of the option, stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the determination of compensation expense.&#160; Forfeitures are recognized as they occur.</div>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net income and loss per share</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Net loss per share:</span> We report net income or loss per share in accordance with ASC 260, &#8220;Earnings per Share (EPS).&#8221; Under this guidance, basic EPS, which excludes dilution, is computed by dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore, these instruments are excluded from the computation of diluted EPS.&#160; See Note 11 - Earnings per share.</div>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription', window );">Change in accounting principle and Reclassificiations</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Change in accounting principle:</span>&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">See Note 16 for a discussion of a change in accounting principle which occurred in the second quarter of 2022. TransAct changed its method of inventory valuation from standard costing which approximates first-in first-out (&#8220;FIFO&#8221;) to the average costing methodology. All prior periods presented have been retrospectively adjusted to apply the new method of accounting. Certain prior period amounts have been adjusted to conform with the current year presentation</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">.</span></div>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;">Reclassifications:</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;">&#160;</span>Certain reclassifications have been made to prior year financial statements to conform to classifications used in the current year.</div>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126999549&amp;loc=d3e4273-108586<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 825<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941378&amp;loc=d3e61044-112788<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3630-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -URI https://asc.fasb.org/topic&amp;trid=2175825<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="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_GoodwillAndIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=121556970&amp;loc=d3e13816-109267<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> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32247-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32847-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32840-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL116659661-227067<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e32280-109318<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32809-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI https://asc.fasb.org/topic&amp;trid=2126998<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 330<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6471895&amp;loc=d3e55923-109411<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e543-108305<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918666-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429488&amp;loc=d3e326-107755<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99779-112916<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=126982197&amp;loc=d3e99893-112916<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5144-111524<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130561-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130563-203045<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI https://asc.fasb.org/topic&amp;trid=49130388<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130563-203045<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 (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126899994&amp;loc=d3e18823-107790<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130564-203045<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130566-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="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_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-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 29<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-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 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-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 29<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-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 29<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-108599<br><br>Reference 6: 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 29<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-108599<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 29<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8864-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI https://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -URI https://asc.fasb.org/extlink&amp;oid=122041274&amp;loc=d3e301413-122809<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695230370320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock', window );">Allowance for Doubtful Accounts</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table summarizes the activity recorded in the valuation account for accounts receivable:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Years Ended </span>December 31<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">,</span></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">220</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to costs and expenses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">140</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deductions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(8</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">351</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Disaggregation of revenue</div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31, 2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,602</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">762</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,364</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,657</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,659</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,686</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,343</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,029</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,089</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">998</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,087</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">44,034</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">Year Ended </span>December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">&#160;</span><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Food service technology</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,738</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">887</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,625</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">POS automation</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,817</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,825</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Casino and gaming</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,173</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,129</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,302</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Printrex</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">171</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">460</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">631</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">TransAct Services Group</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,501</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">502</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,003</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net sales</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32,400</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Net Contract Liabilities</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets consist of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#160;<span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;">(In thousands)</span></div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">392</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">314</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Unbilled receivables, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">163</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">308</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Customer pre-payments</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(101</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(99</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,329</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(805</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue, non-current</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(143</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(186</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net contract (liabilities) assets</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,018</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(468</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock', window );">Concentration of Credit Risk</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Chain Link Services</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International Gaming Technology (&#8220;IGT&#8221;)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">NCR Corporation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The Bright Group</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Sales to customers representing 10% or more of total net sales were as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">IGT</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss of financing receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=SL6953423-111524<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock</td>
</tr>
<tr>
<td style="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_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 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 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br><br>Reference 4: 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 16<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6327-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 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-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 21<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6442-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226239360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventories [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventories</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of inventories are:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;">*</span></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Raw materials and purchased component parts</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,884</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,499</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Work-in-process</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Finished goods</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,201</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,028</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,711</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">see Note 16, Change in Accounting Principle</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226118928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fixed assets, net (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets, net [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Fixed Assets, Net</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of fixed assets, net are:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tooling, machinery and equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,859</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,694</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Furniture and office equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,882</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,660</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Computer software and equipment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,348</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,973</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Leasehold improvements</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,883</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,872</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,972</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">18,199</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less: Accumulated depreciation and amortization</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(17,656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(16,736</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,316</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,463</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Construction in-process</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">465</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,221</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,781</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,684</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226396624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets, net (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Intangible assets, net [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Identifiable Intangible Assets</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span>&#160;</div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross Amount</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Accumulated Amortization</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Purchased technology</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,591</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,349</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,591</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,195</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Patents</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(14</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,606</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,364</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,606</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,209</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226148384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued liabilities (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Accrued liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Accrued Liabilities</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of accrued liabilities are:</div>

<div style="text-align: left;"><span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"> </span><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Salaries and compensation related</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,744</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,854</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">530</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">79</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Professional and consulting</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">371</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">285</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">432</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">676</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,077</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,894</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221106096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Assumptions Used in Option Valuation Calculations</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2022 and 2021 and a discussion of our methodology for developing each of the assumptions used in the valuation model:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected option term (in years)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expected volatility</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">50.5</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Risk-free interest rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Dividend yield</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Stock Option Activity</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan is summarized below:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted Stock Units</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Shares</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"> Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Number of Units</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2021</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,269,355</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.18</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">155,225</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Granted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">181,100</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.16</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">129,700</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.78</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Exercised</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(17,500</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6.70</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(47,931</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.22</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Forfeited</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(49,250</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.38</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(22,708</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10.27</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Expired</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(27,750</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8.51</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Outstanding at December 31, 2022</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,355,955</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">214,286</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average exercise price per share</div></td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average grant stock price per share</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock', window );">Equity Awards Vested and Expected to Vest</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2022:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards Vested and Expected to Vest</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity Awards That Are Exercisable</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Awards</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Average Price*</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Aggregate Intrinsic Value</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Remaining Term**</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock Options</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,355,955</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.08</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">224</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5.0</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">971,865</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9.23</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">93</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 20%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Restricted stock units</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">145,687</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">921</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.1</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">*</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted average exercise price per share</div></td>
  </tr>
</table>

<table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;">
  <tr>
    <td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">**</td>
    <td style="width: auto; vertical-align: top; text-align: left;"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">weighted-average contractual remaining term in years</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 3: 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)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding and exercisable options that are fully vested and expected to vest. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695224569520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income taxes [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Components of Income Tax Benefit</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The components of the income tax benefit are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Current:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">149</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">26</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">110</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">51</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(83</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">176</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">79</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,924</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,057</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(217</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(62</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,141</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,965</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,042</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Deferred Tax Assets and Liabilities</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our deferred tax assets and liabilities were comprised of the following:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,297</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,978</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Foreign net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">676</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">624</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State net operating losses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">149</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Capitalized R&amp;D expenses</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,708</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventory reserves</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">648</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">710</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred revenue</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">41</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Warranty reserve</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">22</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock compensation expense</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">769</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">796</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other accrued compensation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">222</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">308</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit carryforward</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,238</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">901</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other liabilities and reserves</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">463</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">250</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,228</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,919</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -18pt; margin-left: 45pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,572</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,186</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax liabilities:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Depreciation</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">196</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">49</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net deferred tax liabilities</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">245</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total net deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,327</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,143</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfValuationAllowanceTextBlock', window );">Valuation Allowance on Deferred Tax Assets</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">As of December 31, 2022 and 2021, we had a $656 thousand and $733 thousand, respectively, of valuation allowances on our net operating loss carryforwards. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">659</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Subtractions released to income tax provisions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(77</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Additions charged to income tax provision</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">74</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">656</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">733</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Statutory to Effective Tax Rate Reconciliation</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Year Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Federal statutory rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">21.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">PPP loan forgiveness</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">R&amp;D credit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock award excess tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">State income taxes, net of federal income taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Business meals and entertainment</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Miscellaneous permanent items</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.3</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Uncertain tax positions</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.5</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Stock option cancellations</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.6</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Valuation allowance and tax accruals</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1.0</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1.2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Other</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.1</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.4</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Effective tax rate</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24.9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">33.6</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock', window );">Unrecognized Tax Benefits</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">We had $142 thousand and $144 thousand of total gross unrecognized tax benefits at December 31, 2022 and 2021, respectively that, if recognized, would favorably affect the effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Tax positions taken during the current period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">26</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">47</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Lapse of statute of limitations</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(28</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Balance, end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">142</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">144</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of unrecognized tax benefits for which a material change is reasonably possible in the next twelve months, typically including the nature of the uncertainty, the event(s) that could cause a material change, and an estimate of the range of the reasonably possible change or a statement that an estimate of the range cannot be made. An unrecognized tax benefit is the difference between a tax position taken in a tax return and the amounts recognized in the financial statements for which it is more likely than not, based on the technical merits of the position, that the tax position will not be sustained upon examination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock</td>
</tr>
<tr>
<td style="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_SummaryOfValuationAllowanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfValuationAllowanceTextBlock</td>
</tr>
<tr>
<td style="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>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226077616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings per share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Earnings per Share</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Earnings per share was computed as follows (in thousands, except per share amounts):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(5,936</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic:&#160; Weighted average common shares outstanding</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,905</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">&#8211;</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted:&#160; Weighted average common and common equivalent shares outstanding</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,905</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.60</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.60</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695223798272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Geographic area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock', window );">Net Sales and Fixed Assets by Geographic Area</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the location of the customer and asset.</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">44,034</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">32,400</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">14,105</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,986</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">58,139</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,386</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Fixed assets, net:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">United States</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,252</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,770</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">International</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">529</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">914</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,781</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,684</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-108599<br><br>Reference 2: 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)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226120256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock', window );">Cash Flows for Operating Leases</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating cash outflows from leases</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">967</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">982</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock', window );">Additional Information Related to Leases</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The following summarizes additional information related to our leases:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Years Ended December 31,</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average remaining lease term (in years)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2.7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3.5</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 76%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Weighted average discount rate</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.5</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4.4</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">%</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Maturity of Operating Lease Liabilities</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The maturity of the Company&#8217;s operating lease liabilities are as follows (in thousands):</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31, 2022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2023</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">972</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2024</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">1,022</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2025</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">710</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2026</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">20</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total undiscounted lease payments</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,724</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Less imputed interest</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">166</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Total lease liabilities</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,558</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information related to lessee's operating leases, including weighted average lease term and discount rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental information for the statement of cash flows related to operating leases.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221043056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited) (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock', window );">Quarterly Results of Operations</a></td>
<td class="text">
<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Our quarterly results of operations for 2022 and 2021 are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Quarter Ended</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;">(In thousands, except per share amounts)</div></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">March 31</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">June 30</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">September 30</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">December 31</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2022:</div></td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,702</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">12,623</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,856</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">17,958</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,434</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,193</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,219</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,348</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,376</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">528</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">260</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.44</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.05</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.03</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.44</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.05</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.03</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2021:</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">8,301</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,325</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">10,637</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">11,123</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,339</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,432</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,305</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,089</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,030</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">901</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net (loss) income per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.10</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 52%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.23</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.09</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfQuarterlyFinancialInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126900988&amp;loc=d3e1280-108306<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock</td>
</tr>
<tr>
<td style="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>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226092064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2022</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Change in accounting principle [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">Financial Statement Line Items Impacted by Change in Accounting Principle</a></td>
<td class="text">
<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Balance Sheets for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,720</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">7,711</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred tax assets</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,141</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">5,143</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The ending balance in retained earnings as of December 31, 2020 was adjusted from $19,718 to $19,607.</div>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Operations for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Cost of sales</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,705</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">6,817</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24,137</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24,004</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(133</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Gross profit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,418</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">4,306</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,249</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,382</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Operating loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,485</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,597</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9,510</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(9,377</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Loss before income taxes</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,124</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(1,236</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(112</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(6,216</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(6,083</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">133</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">389</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">413</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">24</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,071</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">2,042</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(29</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss per common share:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.07</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.01</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.45</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.02</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.07</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.08</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.01</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.45</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(0.43</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">0.02</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Shares used in per-share calculation:</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Basic</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Diluted</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,848</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">9,298</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Comprehensive Loss for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Comprehensive loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(662</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(750</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(3,964</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(3,860</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Cash Flows for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Deferred income tax benefit</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,150</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(2,121</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">29</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Inventories</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">3,440</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(133</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
</table>

<div><br/></div>

<div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">The effect of the changes made to the Company&#8217;s Consolidated Statements of Changes in Shareholders&#8217; Equity for the periods presented are as follows:</div>

<div><br/></div>

<table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;">
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Three months ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom">&#160;</td>
    <td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Year ended December 31, 2021</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/></td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">FIFO Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Under</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Average Cost</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"><div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">Effect</div><div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;">of Change</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity beginning balance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,280</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">39,361</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">81</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,236</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">30,125</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">$</div></div></td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(111</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; white-space: nowrap;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - beginning of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">16,308</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">16,389</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">81</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,718</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">19,607</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(111</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Net loss</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(735</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(823</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(88</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,145</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(4,041</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">104</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Retained earnings - end of period</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,573</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">15,566</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
  <tr>
    <td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"><div><div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;">Equity ending balance</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,991</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,984</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></div></td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,991</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">38,984</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom">&#160;</td>
    <td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">(7</div></td>
    <td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"><div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;">)</div></td>
  </tr>
</table>
<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e765-108305<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=126900757&amp;loc=d3e725-108305<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="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>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695223903696">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Description of business (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Aug. 16, 2021 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>Segment </div>
<div>Solution</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>May 01, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 13, 2020 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DescriptionOfBusinessAbstract', window );"><strong>Description of business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of operating segments | Segment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_NumberOfSoftwareSolutions', window );">Number of software solutions from the after-market side of the business | Solution</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtraordinaryAndUnusualItemsAbstract', window );"><strong>Description of business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfCommonStock', window );">Proceeds from Public Offering</a></td>
<td class="nump">$ 11,200<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 12,214<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Shares sold in Public Offering (in shares) | shares</a></td>
<td class="nump">842,375<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_GainFromEmployeeRetentionCredit', window );">Gain from employee retention credit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember', window );">PPP Loan [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentsAbstract', window );"><strong>Description of business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face 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="nump">$ 2,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Sienna Credit Facility [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentsAbstract', window );"><strong>Description of business [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</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,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DescriptionOfBusinessAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DescriptionOfBusinessAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_GainFromEmployeeRetentionCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of gain from the Employee Retention Credit, a refundable tax credit against certain employment taxes equal to 50% of the qualified wages an eligible employer pays to employees after March 12, 2020, and before January 1, 2021.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_GainFromEmployeeRetentionCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_NumberOfSoftwareSolutions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of software solutions from the after-market side of the business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_NumberOfSoftwareSolutions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://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 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28551-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429444&amp;loc=SL124452920-239629<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69C<br> -URI https://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495737-112612<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69B<br> -URI https://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495735-112612<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DebtInstrumentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentsAbstract</td>
</tr>
<tr>
<td style="padding-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_ExtraordinaryAndUnusualItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ExtraordinaryAndUnusualItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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(b),22(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8672-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the additional capital contribution to the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember</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>51
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226396624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Segment reporting (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </div>
<div>Segment</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfOperatingSegments', window );">Number of business segments</a></td>
<td class="nump">1<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_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8672-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695223861856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Allowance for doubtful accounts (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Allowance for doubtful accounts [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance, beginning of period</a></td>
<td class="nump">$ 219<span></span>
</td>
<td class="nump">$ 220<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Additions charged to costs and expenses</a></td>
<td class="nump">140<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Deductions</a></td>
<td class="num">(8)<span></span>
</td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Balance, end of period</a></td>
<td class="nump">$ 351<span></span>
</td>
<td class="nump">$ 219<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_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123577603&amp;loc=d3e5074-111524<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124255206&amp;loc=SL82895884-210446<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AllowanceForDoubtfulAccountsReceivableRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward</td>
</tr>
<tr>
<td style="padding-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_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124255953&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695225298768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Fixed assets (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation expense</a></td>
<td class="nump">$ 1.1<span></span>
</td>
<td class="nump">$ 0.7<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember', window );">Tooling [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Estimated useful life</a></td>
<td class="text">7 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ToolsDiesAndMoldsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember</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>54
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221117216">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of significant accounting policies, Leases (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th"><div>Apr. 26, 2022</div></th>
<th class="th"><div>Apr. 20, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm', window );">Remaining lease terms</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRemainingLeaseTerm', window );">Remaining lease terms</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInLasVegasNevadaMember', window );">Facility in Las Vegas, Nevada [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset', window );">Increase (decrease) in right-of-use-asset</a></td>
<td class="nump">$ 0.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLeaseLiability', window );">Increase (decrease) in operating lease liability</a></td>
<td class="nump">$ 0.8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInHamdenConnecticutMember', window );">Facility in Hamden, Connecticut [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsAndLiabilitiesLesseeAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset', window );">Increase (decrease) in right-of-use-asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLeaseLiability', window );">Increase (decrease) in operating lease liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating lease right-of-use asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AssetsAndLiabilitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsAndLiabilitiesLesseeAbstract</td>
</tr>
<tr>
<td style="padding-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_IncreaseDecreaseInOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: 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 (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LesseeOperatingLeaseRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInLasVegasNevadaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInLasVegasNevadaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInHamdenConnecticutMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FacilityInHamdenConnecticutMember</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>55
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226122512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Goodwill and intangible assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetImpairment', window );">Impairment of goodwill and intangible assets</a></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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetImpairment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetImpairment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220156944">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation', window );">Term of free maintenance upon completion of software installation</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">1 year<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 17,958<span></span>
</td>
<td class="nump">$ 17,856<span></span>
</td>
<td class="nump">$ 12,623<span></span>
</td>
<td class="nump">$ 9,702<span></span>
</td>
<td class="nump">$ 11,123<span></span>
</td>
<td class="nump">$ 10,637<span></span>
</td>
<td class="nump">$ 9,325<span></span>
</td>
<td class="nump">$ 8,301<span></span>
</td>
<td class="nump">$ 58,139<span></span>
</td>
<td class="nump">$ 39,386<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">44,034<span></span>
</td>
<td class="nump">32,400<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=tact_InternationalMember', window );">International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">14,105<span></span>
</td>
<td class="nump">6,986<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_FoodServiceTechnologyMember', window );">Food Service Technology [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">12,364<span></span>
</td>
<td class="nump">12,625<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_FoodServiceTechnologyMember', window );">Food Service Technology [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">11,602<span></span>
</td>
<td class="nump">11,738<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_FoodServiceTechnologyMember', window );">Food Service Technology [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">762<span></span>
</td>
<td class="nump">887<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PosAutomationAndBankingMember', window );">POS Automation [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">10,659<span></span>
</td>
<td class="nump">4,825<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PosAutomationAndBankingMember', window );">POS Automation [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">10,657<span></span>
</td>
<td class="nump">4,817<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PosAutomationAndBankingMember', window );">POS Automation [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">2<span></span>
</td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_CasinoAndGamingMember', window );">Casino and Gaming [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">30,029<span></span>
</td>
<td class="nump">15,302<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_CasinoAndGamingMember', window );">Casino and Gaming [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">17,686<span></span>
</td>
<td class="nump">10,173<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_CasinoAndGamingMember', window );">Casino and Gaming [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">12,343<span></span>
</td>
<td class="nump">5,129<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PrintrexMember', window );">Printrex [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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>
<td class="nump">631<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PrintrexMember', window );">Printrex [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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>
<td class="nump">171<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_PrintrexMember', window );">Printrex [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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>
<td class="nump">460<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_TransactServicesGroupMember', window );">TransAct Services Group [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">5,087<span></span>
</td>
<td class="nump">6,003<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_TransactServicesGroupMember', window );">TransAct Services Group [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">4,089<span></span>
</td>
<td class="nump">5,501<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=tact_TransactServicesGroupMember', window );">TransAct Services Group [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueAbstract', window );"><strong>Disaggregation of revenue [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">$ 998<span></span>
</td>
<td class="nump">$ 502<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period the customer receives free maintenance upon completion of EPICENTRAL installation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueAbstract</td>
</tr>
<tr>
<td style="padding-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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 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 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-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 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</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_StatementGeographicalAxis=tact_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=tact_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_srt_ProductOrServiceAxis=tact_FoodServiceTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tact_FoodServiceTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tact_PosAutomationAndBankingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tact_PosAutomationAndBankingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tact_CasinoAndGamingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tact_CasinoAndGamingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tact_PrintrexMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tact_PrintrexMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=tact_TransactServicesGroupMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=tact_TransactServicesGroupMember</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>57
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695219438208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Revenue recognition - Contract balances (Details) - USD ($)<br> $ in Thousands</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, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Summary of significant accounting policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ContractWithCustomerRevenueRecognized', window );">Revenue recognized</a></td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityAbstract', window );"><strong>Contract liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Unbilled receivables, current</a></td>
<td class="nump">314<span></span>
</td>
<td class="nump">$ 392<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetNoncurrent', window );">Unbilled receivables, non-current</a></td>
<td class="nump">308<span></span>
</td>
<td class="nump">163<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent', window );">Customer pre-payments</a></td>
<td class="num">(99)<span></span>
</td>
<td class="num">(101)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue, current</a></td>
<td class="num">(805)<span></span>
</td>
<td class="num">(1,329)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, non-current</a></td>
<td class="num">(186)<span></span>
</td>
<td class="num">(143)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ContractWithCustomerAssetLiabilityNet', window );">Net contract (liabilities) assets</a></td>
<td class="num">$ (468)<span></span>
</td>
<td class="num">$ (1,018)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_ContractWithCustomerAssetLiabilityNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ContractWithCustomerAssetLiabilityNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer related to customer prepayments for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_ContractWithCustomerRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized related to obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ContractWithCustomerRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130533-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerAssetNetNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130533-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ContractWithCustomerLiabilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityAbstract</td>
</tr>
<tr>
<td style="padding-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_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130532-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126919976&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695223962448">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)<br> $ in Millions</strong></div></th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 29.0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2023-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2023-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 28.7<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">12 months<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Remaining performance obligations</a></td>
<td class="nump">$ 0.2<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">12 months<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuePerformanceObligationAbstract', window );"><strong>Remaining performance obligations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Expected timing of satisfaction, period</a></td>
<td class="text">12 months<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuePerformanceObligationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuePerformanceObligationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130556-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130556-203045<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2023-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2023-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2024-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221117088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Concentration of credit risk (Details) - Customer Concentration Risk [Member]<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | Chain Link Services [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | IGT [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">3.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | NCR Corporation [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">3.00%<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | The Bright Group [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">11.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | IGT [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>Concentration of credit risk [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="nump">9.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RisksAndUncertaintiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RisksAndUncertaintiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=tact_ScientificGamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=tact_ScientificGamesMember</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=tact_InternationalGameTechnologyPlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=tact_InternationalGameTechnologyPlcMember</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=tact_NcrCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=tact_NcrCorporationMember</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=tact_TheBrightGroupMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=tact_TheBrightGroupMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695312085824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Engineering, design and product development (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpenseAbstract', window );"><strong>Engineering, design and product development [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development expense</a></td>
<td class="nump">$ 8,570<span></span>
</td>
<td class="nump">$ 7,475<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareNet', window );">Unamortized development costs of software</a></td>
<td class="nump">242<span></span>
</td>
<td class="nump">396<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareAmortization1', window );">Amortization of capitalized software development costs</a></td>
<td class="nump">$ 154<span></span>
</td>
<td class="nump">$ 154<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="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for amortization of capitalized computer software costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128487-111756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalizedComputerSoftwareAmortization1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalizedComputerSoftwareNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying amount of capitalized computer software costs net of accumulated amortization as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalizedComputerSoftwareNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 912<br> -SubTopic 730<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6472174&amp;loc=d3e58812-109433<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228466896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of significant accounting policies, Advertising (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MarketingAndAdvertisingExpenseAbstract', window );"><strong>Advertising [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising expense</a></td>
<td class="nump">$ 3.1<span></span>
</td>
<td class="nump">$ 1.8<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 720<br> -SubTopic 35<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6420018&amp;loc=d3e36677-107848<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MarketingAndAdvertisingExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MarketingAndAdvertisingExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228585728">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventories [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves', window );">Raw materials and purchased component parts</a></td>
<td class="nump">$ 8,884<span></span>
</td>
<td class="nump">$ 5,499<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">11<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">3,144<span></span>
</td>
<td class="nump">2,201<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 12,028<span></span>
</td>
<td class="nump">$ 7,711<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregated amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed. This amount is net of valuation reserves and adjustments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI https://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220030048">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fixed assets, net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">$ 19,972<span></span>
</td>
<td class="nump">$ 18,199<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: Accumulated depreciation and amortization</a></td>
<td class="num">(17,656)<span></span>
</td>
<td class="num">(16,736)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">2,781<span></span>
</td>
<td class="nump">2,684<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Tooling, Machinery and Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">6,859<span></span>
</td>
<td class="nump">6,694<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember', window );">Furniture and Office Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">1,882<span></span>
</td>
<td class="nump">1,660<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember', window );">Computer Software and Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">8,348<span></span>
</td>
<td class="nump">6,973<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">2,883<span></span>
</td>
<td class="nump">2,872<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember', window );">Fixed Assets, Excluding Construction in-Process [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">2,316<span></span>
</td>
<td class="nump">1,463<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in-Process [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract', window );"><strong>Fixed assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Fixed assets</a></td>
<td class="nump">$ 465<span></span>
</td>
<td class="nump">$ 1,221<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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract</td>
</tr>
<tr>
<td style="padding-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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FurnitureAndOfficeEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_ComputerSoftwareAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=tact_FixedAssetsExcludingConstructionInProcessMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</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>64
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695227787712">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible assets, net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 1,606<span></span>
</td>
<td class="nump">$ 1,606<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(1,364)<span></span>
</td>
<td class="num">(1,209)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization expense</a></td>
<td class="nump">155<span></span>
</td>
<td class="nump">186<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Future amortization expense [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2023</a></td>
<td class="nump">154<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2024</a></td>
<td class="nump">88<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree', window );">Thereafter</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember', window );">Purchased Technology [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">1,591<span></span>
</td>
<td class="nump">1,591<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(1,349)<span></span>
</td>
<td class="num">(1,195)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember', window );">Patents [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract', window );"><strong>Identifiable intangible assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">15<span></span>
</td>
<td class="nump">15<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">$ (15)<span></span>
</td>
<td class="num">$ (14)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNetAbstract</td>
</tr>
<tr>
<td style="padding-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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TechnologyBasedIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_PatentsMember</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>65
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695230302208">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Accrued liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeRelatedLiabilitiesCurrent', window );">Salaries and compensation related</a></td>
<td class="nump">$ 2,744<span></span>
</td>
<td class="nump">$ 2,854<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxesPayableCurrent', window );">Taxes</a></td>
<td class="nump">530<span></span>
</td>
<td class="nump">79<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrent', window );">Professional and consulting</a></td>
<td class="nump">371<span></span>
</td>
<td class="nump">285<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">432<span></span>
</td>
<td class="nump">676<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued liabilities</a></td>
<td class="nump">$ 4,077<span></span>
</td>
<td class="nump">$ 3,894<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_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AccruedProfessionalFeesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedProfessionalFeesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_EmployeeRelatedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeRelatedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxesPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxesPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>66
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228401760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Retirement savings plan (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement savings plan [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch', window );">Employer matching contribution percentage</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent', window );">Employee's contribution percentage for match</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Amount of matching contribution</a></td>
<td class="nump">$ 355<span></span>
</td>
<td class="nump">$ 312<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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DefinedContributionPlanEmployerMatchingContributionPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent</td>
</tr>
<tr>
<td style="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_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage employer matches of the employee's percentage contribution matched.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch</td>
</tr>
<tr>
<td style="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>67
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695225374080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Borrowings (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jul. 01, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Jul. 21, 2021</div></th>
<th class="th"><div>May 01, 2020</div></th>
<th class="th"><div>Mar. 13, 2020</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Sienna Credit Facility [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Maximum borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</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,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateStatedPercentage', window );">Interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredFinanceCostsGross', window );">Deferred financing costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 245,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Percentage fee on unused borrowings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable', window );">Percentage of eligible accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">85.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="Show.showAR( this, 'defref_tact_DebtInstrumentFinancialCovenantEligibleInventory', window );">Eligible inventory</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage', window );">Percentage of eligible raw material</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.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="Show.showAR( this, 'defref_tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage', window );">Percentage of eligible finished goods inventory</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SecuredDebt', window );">Balance outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Additional borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,900,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash', window );">Minimum excess availability and unrestricted cash required</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,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>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash', window );">Number of days to maintain excess availability and unrestricted cash</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount', window );">Minimum principal amount to be maintained to direct use of funds in deposit account</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,250,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid', window );">Minimum principal amount on which interest is paid</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,250,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Sienna Credit Facility [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Additional borrowing capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 750,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Sienna Credit Facility [Member] | Prime Rate [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="text">&#160;<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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember', window );">Sienna Credit Facility [Member] | Federal Funds Rate [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Basis spread on variable rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember', window );">PPP Loan [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" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAbstract', window );"><strong>Borrowings [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Face 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="nump">$ 2,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentDecreaseForgiveness', window );">Loan forgiven</a></td>
<td class="nump">$ 2,200,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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentFinancialCovenantEligibleInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash required under a new "springing" deposit account control agreement, permitting the Company to direct the use of funds in its deposit account.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The minimum principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid if the Company does not have the ability to direct the use of funds in the deposit account under the Amended Fee Letter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The minimum principal amount of outstanding borrowings that must be maintained in order to retain the ability to direct the use of funds in the deposit account under the Amended Fee Letter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The period of time the minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash must be maintained, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentDecreaseForgiveness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Decrease for amounts of indebtedness forgiven by the holder of the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(f))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentDecreaseForgiveness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://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 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28551-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429444&amp;loc=SL124452920-239629<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69C<br> -URI https://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495737-112612<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 55<br> -Paragraph 69B<br> -URI https://asc.fasb.org/extlink&amp;oid=123466577&amp;loc=SL123495735-112612<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DebtInstrumentInterestRateStatedPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contractual interest rate for funds borrowed, under the debt agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 https://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 https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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_DeferredFinanceCostsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124435984&amp;loc=d3e28555-108399<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFinanceCostsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LineOfCreditFacilityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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(b),22(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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(b),22(b))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="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_SecuredDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI https://asc.fasb.org/extlink&amp;oid=126897435&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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SecuredDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=tact_RevolvingCreditFacilitySienaLendingGroupLlcMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_PrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_PrimeRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_FederalFundsEffectiveSwapRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_FederalFundsEffectiveSwapRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=tact_PaycheckProtectionProgramLoanMember</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>68
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228564016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Stock incentive plans (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2022 </div>
<div>Plan </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans', window );">Number of stock incentive plans | Plan</a></td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></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="Show.showAR( this, 'defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant', window );">Exercise price as a percentage of fair market value of common stock at date of grant</a></td>
<td class="nump">100.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></td>
<td class="text">4 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Number of shares authorized (in shares)</a></td>
<td class="nump">2,200,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Number of shares available for grant (in shares)</a></td>
<td class="nump">347,652<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Stock Options [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract', window );"><strong>Stock incentive plans [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of stock incentive plans.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695227903680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Assumptions used in option valuation calculations (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Options [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected option term</a></td>
<td class="text">7 years 1 month 6 days<span></span>
</td>
<td class="text">6 years 10 months 24 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">51.30%<span></span>
</td>
<td class="nump">50.50%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">2.20%<span></span>
</td>
<td class="nump">1.20%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Dividend yield</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Stock Options [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted average fair value of grants (in dollars per share)</a></td>
<td class="nump">$ 4.39<span></span>
</td>
<td class="nump">$ 5.41<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Term of award</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member', window );">2014 Equity Incentive Plan [Member] | Restricted Share Units [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract', window );"><strong>Assumptions used in valuation model [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted average fair value of grants (in dollars per share)</a></td>
<td class="nump">$ 8.43<span></span>
</td>
<td class="nump">$ 10.27<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average grant-date fair value of non-vested options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="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_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=tact_EquityIncentivePlan2014Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228211072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Share-based compensation expense (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationAbstract', window );"><strong>Share-based compensation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit from share-based compensation expense</a></td>
<td class="nump">$ 0.3<span></span>
</td>
<td class="nump">$ 0.3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative Expense [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationAbstract', window );"><strong>Share-based compensation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 1.2<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ShareBasedCompensationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221373632">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Stock incentive plans, Stock options (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Unrecognized compensation cost related to stock options</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Weighted average period to recognize compensation cost not yet recognized</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">2 years 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1', window );">Fair value of all awards vested</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1,600<span></span>
</td>
<td class="nump">$ 1,700<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Intrinsic value of stock options exercised</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">40<span></span>
</td>
<td class="nump">268<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Cash received from exercise of stock options</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">436<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Excess tax benefit in provision for income taxes</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">$ (13)<span></span>
</td>
<td class="num">$ (35)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member', window );">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member] | Stock Options [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,269,355<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">181,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(17,500)<span></span>
</td>
<td class="num">(97,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Forfeited (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(49,250)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod', window );">Expired (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(27,750)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,355,955<span></span>
</td>
<td class="nump">1,269,355<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested or expected to vest (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,355,955<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Options exercisable, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">971,865<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 9.18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">8.16<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">6.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Forfeited (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">9.38<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Expired (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">8.51<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">9.08<span></span>
</td>
<td class="nump">$ 9.18<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Options vested or expected to vest (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">9.08<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Options exercisable, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 9.23<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EquityAwardsAggregateIntrinsicValueAbstract', window );"><strong>Aggregate Intrinsic Value [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 224<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Options exercisable, end of period</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 93<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Options exercisable, end of period</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">3 years 8 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member', window );">2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member] | Restricted Share Units [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Number of Shares [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Options vested or expected to vest (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">145,687<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Options vested or expected to vest (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward', window );"><strong>Number of Units [Roll Forward]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, beginning of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">155,225<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted', window );">Granted (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">129,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised', window );">Exercised (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(47,931)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures', window );">Forfeited (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(22,708)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations', window );">Expired (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, end of period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">214,286<span></span>
</td>
<td class="nump">155,225<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted Average Grant Stock Price [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, beginning of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 10.28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">8.78<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue', window );">Exercised (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">10.22<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">10.27<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue', window );">Expired (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, end of period (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[3]</sup></td>
<td class="nump">$ 9.28<span></span>
</td>
<td class="nump">$ 10.28<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EquityAwardsAggregateIntrinsicValueAbstract', window );"><strong>Aggregate Intrinsic Value [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested', window );">Restricted stock units vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 921<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract', window );"><strong>Remaining Term [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms', window );">Restricted stock units vested and expected to vest</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="text">2 years 1 month 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">weighted average exercise price per share</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">weighted-average contractual remaining term in years</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[3]</td>
<td style="vertical-align: top;" valign="top">weighted average grant stock price per share</td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_EquityAwardsAggregateIntrinsicValueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_EquityAwardsAggregateIntrinsicValueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans for which the right to exercise has lapsed under the terms of the plan agreements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=SL79508275-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of non-option equity instruments exercised by participants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares under non-option equity instrument agreements for which rights to exercise lapsed.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares under non-option equity instrument agreements that were cancelled as a result of occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net number of non-option equity instruments granted to participants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of equity instruments other than options outstanding, including both vested and non-vested instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -URI https://asc.fasb.org/extlink&amp;oid=128089324&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221587824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Components of income tax benefit (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</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, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 149<span></span>
</td>
<td class="nump">$ 26<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">110<span></span>
</td>
<td class="nump">51<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(83)<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Income taxes current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">176<span></span>
</td>
<td class="nump">79<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,924)<span></span>
</td>
<td class="num">(2,057)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(217)<span></span>
</td>
<td class="num">(62)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(2)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Income taxes deferred</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,141)<span></span>
</td>
<td class="num">(2,121)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit</a></td>
<td class="num">$ (413)<span></span>
</td>
<td class="num">$ (1,965)<span></span>
</td>
<td class="num">$ (2,042)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">24.90%<span></span>
</td>
<td class="nump">33.60%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Federal statutory tax rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income (loss) before taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 24<span></span>
</td>
<td class="num">$ (404)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Federal [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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="Show.showAR( this, 'defref_tact_OperatingLossCarryforwardsNotSubjectToExpiration', window );">Net operating loss carryforwards not subject to expiration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_OperatingLossCarryforwardsSubjectToExpiration', window );">Net operating loss carryforwards subject to expiration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_TaxCreditCarryforwardAmountSubjectToExpiration', window );">Tax credit carryforwards subject to expiration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=us-gaap_ResearchMember', window );">R&amp;D Credit [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract', window );"><strong>Income taxes [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="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_TaxCreditCarryforwardAmountSubjectToExpiration', window );">Tax credit carryforwards subject to expiration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_TaxCreditCarryforwardExpirationPeriod', window );">Life of tax credit carry forward</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">20 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_OperatingLossCarryforwardsNotSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are not subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_OperatingLossCarryforwardsNotSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_OperatingLossCarryforwardsSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_OperatingLossCarryforwardsSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_TaxCreditCarryforwardAmountSubjectToExpiration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_TaxCreditCarryforwardAmountSubjectToExpiration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_tact_TaxCreditCarryforwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period remaining before the tax credit carryforward expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_TaxCreditCarryforwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract</td>
</tr>
<tr>
<td style="padding-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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember</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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAxis=us-gaap_ResearchMember</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>73
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695312079232">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income taxes, Deferred tax assets and liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNetAbstract', window );"><strong>Deferred tax assets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</a></td>
<td class="nump">$ 2,297<span></span>
</td>
<td class="nump">$ 1,978<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">676<span></span>
</td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal', window );">State net operating losses</a></td>
<td class="nump">149<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements', window );">Depreciation</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">306<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment', window );">Capitalized R&amp;D expenses</a></td>
<td class="nump">1,708<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventory reserves</a></td>
<td class="nump">648<span></span>
</td>
<td class="nump">710<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsDeferredIncome', window );">Deferred revenue</a></td>
<td class="nump">41<span></span>
</td>
<td class="nump">24<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves', window );">Warranty reserve</a></td>
<td class="nump">17<span></span>
</td>
<td class="nump">22<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock compensation expense</a></td>
<td class="nump">769<span></span>
</td>
<td class="nump">796<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation', window );">Other accrued compensation</a></td>
<td class="nump">222<span></span>
</td>
<td class="nump">308<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch', window );">R&amp;D credit carryforward</a></td>
<td class="nump">1,238<span></span>
</td>
<td class="nump">901<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other liabilities and reserves</a></td>
<td class="nump">463<span></span>
</td>
<td class="nump">250<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Gross deferred tax assets</a></td>
<td class="nump">8,228<span></span>
</td>
<td class="nump">5,919<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(656)<span></span>
</td>
<td class="num">(733)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="nump">7,572<span></span>
</td>
<td class="nump">5,186<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesNetAbstract', window );"><strong>Deferred tax liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Depreciation</a></td>
<td class="nump">196<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesOther', window );">Other</a></td>
<td class="nump">49<span></span>
</td>
<td class="nump">43<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Net deferred tax liabilities</a></td>
<td class="nump">245<span></span>
</td>
<td class="nump">43<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsLiabilitiesNet', window );">Total net deferred tax assets</a></td>
<td class="nump">$ 7,327<span></span>
</td>
<td class="nump">$ 5,143<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_DeferredTaxAssetsDeferredIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from deferred income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsDeferredIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsInProcessResearchAndDevelopment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from in-process research and development costs expensed in connection with a business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNetAbstract</td>
</tr>
<tr>
<td style="padding-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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxCreditCarryforwardsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32559-109319<br><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 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from employee compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from the estimated loss from legal settlements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from warranty reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesNetAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesNetAbstract</td>
</tr>
<tr>
<td style="padding-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_DeferredTaxLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228370768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Valuation allowance on deferred tax assets (Details) - Foreign Net Operating Loss Carryforwards [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>Valuation allowance [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance, beginning of period</a></td>
<td class="nump">$ 733<span></span>
</td>
<td class="nump">$ 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="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Subtractions released to income tax provisions</a></td>
<td class="num">(77)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Additions charged to income tax provision</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">74<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance, end of period</a></td>
<td class="nump">$ 656<span></span>
</td>
<td class="nump">$ 733<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_MovementInValuationAllowancesAndReservesRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInValuationAllowancesAndReservesRollForward</td>
</tr>
<tr>
<td style="padding-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_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<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 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column D))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesDeductions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember</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>75
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220037824">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Statutory to effective tax rate reconciliation (Details)<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract', window );"><strong>Effective Tax Rate Reconciliation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Federal statutory tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.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="Show.showAR( this, 'defref_tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent', window );">PPP loan forgiveness</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">7.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch', window );">R&amp;D credit</a></td>
<td class="nump">4.30%<span></span>
</td>
<td class="nump">7.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Stock award excess tax benefit</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">0.30%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal income taxes</a></td>
<td class="nump">1.10%<span></span>
</td>
<td class="nump">0.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment', window );">Business meals and entertainment</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(0.20%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent', window );">Miscellaneous permanent items</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(0.30%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies', window );">Uncertain tax positions</a></td>
<td class="num">(0.50%)<span></span>
</td>
<td class="num">(0.40%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Stock option cancellations</a></td>
<td class="num">(1.90%)<span></span>
</td>
<td class="num">(0.60%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Valuation allowance and tax accruals</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="num">(1.20%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="num">(0.10%)<span></span>
</td>
<td class="nump">0.40%<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="nump">24.90%<span></span>
</td>
<td class="nump">33.60%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to forgiveness of a long under the Paycheck Protection Program (PPP) administered by the Small Business Administration established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security ("CARES") Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 miscellaneous permanent items.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract</td>
</tr>
<tr>
<td style="padding-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_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 changes in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 meals and entertainment expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and 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 share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 other adjustments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126970579&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationTaxContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 income tax contingencies. Includes, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies</td>
</tr>
<tr>
<td style="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_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 research tax credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.4)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch</td>
</tr>
<tr>
<td style="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>76
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221262816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income taxes, Unrecognized tax benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income taxes [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate', window );">Unrecognized tax benefits that would favorably affect effective income tax rate if recognized</a></td>
<td class="nump">$ 142<span></span>
</td>
<td class="nump">$ 144<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Unrecognized tax benefits [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits, beginning of period</a></td>
<td class="nump">144<span></span>
</td>
<td class="nump">121<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease', window );">Tax positions taken during the current period</a></td>
<td class="nump">26<span></span>
</td>
<td class="nump">47<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Lapse of statute of limitations</a></td>
<td class="num">(28)<span></span>
</td>
<td class="num">(24)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Unrecognized tax benefits, end of period</a></td>
<td class="nump">142<span></span>
</td>
<td class="nump">144<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible', window );">Expected decrease in unrecognized tax benefits in next year</a></td>
<td class="nump">28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued', window );">Accrued interest and penalties related to uncertain tax positions</a></td>
<td class="nump">$ 34<span></span>
</td>
<td class="nump">$ 20<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_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease reasonably possible in the next twelve months for the unrecognized tax benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of estimated penalties and interest accrued as of the balance sheet date arising from income tax examinations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="padding-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_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=SL37586934-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 15A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>77
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221289216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Earnings per share (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings per share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Shares [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic: Weighted average common shares outstanding (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</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">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted: Weighted average common and common equivalent shares outstanding (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</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">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAbstract', window );"><strong>Net loss per common share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember', window );">Stock Awards [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareReconciliationAbstract', window );"><strong>Earnings per share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Anti-dilutive securities excluded from computation of earnings per dilutive share (in 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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,463,000<span></span>
</td>
<td class="nump">391,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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicAbstract</td>
</tr>
<tr>
<td style="padding-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_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareReconciliationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareReconciliationAbstract</td>
</tr>
<tr>
<td style="padding-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_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126962052&amp;loc=d3e4991-113900<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 https://asc.fasb.org/extlink&amp;oid=126958026&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 https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<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 28A<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1500-109256<br><br>Reference 5: 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 https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1757-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract</td>
</tr>
<tr>
<td style="padding-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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_StockCompensationPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228551008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock repurchase program (Details) - USD ($)<br> $ / shares in Units, $ in Millions</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1">180 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Stock repurchase program [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Common stock repurchased (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,044,842<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Value of common stock repurchased</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 32.1<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare', window );">Average purchase price of common stock repurchased (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7.94<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126973232&amp;loc=d3e21463-112644<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total cost of shares repurchased divided by the total number of shares repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockAcquiredAverageCostPerShare</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220722288">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Geographic area information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 17,958<span></span>
</td>
<td class="nump">$ 17,856<span></span>
</td>
<td class="nump">$ 12,623<span></span>
</td>
<td class="nump">$ 9,702<span></span>
</td>
<td class="nump">$ 11,123<span></span>
</td>
<td class="nump">$ 10,637<span></span>
</td>
<td class="nump">$ 9,325<span></span>
</td>
<td class="nump">$ 8,301<span></span>
</td>
<td class="nump">$ 58,139<span></span>
</td>
<td class="nump">$ 39,386<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">2,781<span></span>
</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,684<span></span>
</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,781<span></span>
</td>
<td class="nump">2,684<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">44,034<span></span>
</td>
<td class="nump">32,400<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=tact_InternationalMember', window );">International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">$ 14,105<span></span>
</td>
<td class="nump">$ 6,986<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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.00%<span></span>
</td>
<td class="nump">18.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Europe [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">68.00%<span></span>
</td>
<td class="nump">53.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Pacific Rim [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">28.00%<span></span>
</td>
<td class="nump">35.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Sales [Member] | Geographic Concentration Risk [Member] | Canada [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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="nump">11.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember', window );">Reportable Geographical Components [Member] | United States [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">$ 44,034<span></span>
</td>
<td class="nump">$ 32,400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">2,252<span></span>
</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,770<span></span>
</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,252<span></span>
</td>
<td class="nump">1,770<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember', window );">Reportable Geographical Components [Member] | International [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentsGeographicalAreasAbstract', window );"><strong>Geographical area information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</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="nump">14,105<span></span>
</td>
<td class="nump">6,986<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Fixed assets, net</a></td>
<td class="nump">$ 529<span></span>
</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">$ 914<span></span>
</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">$ 529<span></span>
</td>
<td class="nump">$ 914<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123594938&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI https://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=124429447&amp;loc=SL124453093-239630<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 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 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-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 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SegmentsGeographicalAreasAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentsGeographicalAreasAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</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_StatementGeographicalAxis=tact_InternationalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=tact_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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_GeographicConcentrationRiskMember</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_StatementGeographicalAxis=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_EuropeMember</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_StatementGeographicalAxis=tact_PacificRimMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=tact_PacificRimMember</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_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_CA</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_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ConsolidationItemsAxis=srt_ReportableGeographicalComponentsMember</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>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220031040">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashFlowOperatingActivitiesLesseeAbstract', window );"><strong>Cash Flows Related to Operating Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating cash outflows from leases</a></td>
<td class="nump">$ 967<span></span>
</td>
<td class="nump">$ 982<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseDescriptionAbstract', window );"><strong>Operating Lease Weighted Average Remaining Lease Term and Discount Rate [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Weighted average remaining lease term</a></td>
<td class="text">2 years 8 months 12 days<span></span>
</td>
<td class="text">3 years 6 months<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Weighted average discount rate</a></td>
<td class="nump">4.50%<span></span>
</td>
<td class="nump">4.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract', window );"><strong>Maturity of Operating Lease Liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2023</a></td>
<td class="nump">$ 972<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2024</a></td>
<td class="nump">1,022<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2025</a></td>
<td class="nump">710<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2026</a></td>
<td class="nump">20<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total undiscounted lease payments</a></td>
<td class="nump">2,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less imputed interest</a></td>
<td class="nump">166<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Total lease liabilities</a></td>
<td class="nump">$ 2,558<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFlowOperatingActivitiesLesseeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashFlowOperatingActivitiesLesseeAbstract</td>
</tr>
<tr>
<td style="padding-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_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseDescriptionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseDescriptionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918638-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=123391704&amp;loc=SL77918643-209977<br><br>Reference 2: 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 4<br> -Subparagraph (g)(1)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI https://asc.fasb.org/extlink&amp;oid=123414884&amp;loc=SL77918982-209971<br><br>Reference 2: 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 4<br> -Subparagraph (g)(3)<br> -URI https://asc.fasb.org/extlink&amp;oid=128292326&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220714560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Quarterly results of operations (unaudited) (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract', window );"><strong>Quarterly results of operations (unaudited) [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 17,958<span></span>
</td>
<td class="nump">$ 17,856<span></span>
</td>
<td class="nump">$ 12,623<span></span>
</td>
<td class="nump">$ 9,702<span></span>
</td>
<td class="nump">$ 11,123<span></span>
</td>
<td class="nump">$ 10,637<span></span>
</td>
<td class="nump">$ 9,325<span></span>
</td>
<td class="nump">$ 8,301<span></span>
</td>
<td class="nump">$ 58,139<span></span>
</td>
<td class="nump">$ 39,386<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">8,219<span></span>
</td>
<td class="nump">8,193<span></span>
</td>
<td class="nump">5,434<span></span>
</td>
<td class="nump">2,566<span></span>
</td>
<td class="nump">4,306<span></span>
</td>
<td class="nump">4,305<span></span>
</td>
<td class="nump">3,432<span></span>
</td>
<td class="nump">3,339<span></span>
</td>
<td class="nump">24,412<span></span>
</td>
<td class="nump">15,382<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net (loss) income</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_QuarterlyFinancialInformationDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-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_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 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 40<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9031-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 41<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9038-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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130543-203045<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 42<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e9054-108599<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126920106&amp;loc=SL49130545-203045<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI https://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221579552">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Change in accounting principle, Effect of Change on Balance Sheets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Consolidated Balance Sheets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 12,028<span></span>
</td>
<td class="nump">$ 7,711<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="nump">7,327<span></span>
</td>
<td class="nump">5,143<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">$ 9,630<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
<td class="nump">$ 19,607<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Consolidated Balance Sheets [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,141<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,573<span></span>
</td>
<td class="nump">$ 19,718<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Change in Method of Inventory Valuation to Average Costing [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Consolidated Balance Sheets [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(9)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (7)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31931-109318<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=123427490&amp;loc=d3e31917-109318<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124098289&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI https://asc.fasb.org/extlink&amp;oid=126734703&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI https://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI https://asc.fasb.org/extlink&amp;oid=124501264&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</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_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</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>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695228133104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle, Effect of Change on Statements of Operations (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Consolidated Statements of Operations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of sales</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">$ 6,817<span></span>
</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">$ 33,727<span></span>
</td>
<td class="nump">$ 24,004<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">$ 8,219<span></span>
</td>
<td class="nump">$ 8,193<span></span>
</td>
<td class="nump">$ 5,434<span></span>
</td>
<td class="nump">$ 2,566<span></span>
</td>
<td class="nump">4,306<span></span>
</td>
<td class="nump">$ 4,305<span></span>
</td>
<td class="nump">$ 3,432<span></span>
</td>
<td class="nump">$ 3,339<span></span>
</td>
<td class="nump">24,412<span></span>
</td>
<td class="nump">15,382<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating loss</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="num">(2,597)<span></span>
</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">(7,677)<span></span>
</td>
<td class="num">(9,377)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</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="num">(1,236)<span></span>
</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">(7,901)<span></span>
</td>
<td class="num">(6,083)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit</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">413<span></span>
</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,965<span></span>
</td>
<td class="nump">2,042<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.1<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.03<span></span>
</td>
<td class="nump">$ 0.05<span></span>
</td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.44)<span></span>
</td>
<td class="num">$ (0.08)<span></span>
</td>
<td class="nump">$ 0.09<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.23)<span></span>
</td>
<td class="num">$ (0.6)<span></span>
</td>
<td class="num">$ (0.43)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Shares used in per-share calculation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</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">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</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">9,905<span></span>
</td>
<td class="nump">9,298<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Consolidated Statements of Operations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of sales</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">$ 6,705<span></span>
</td>
<td class="text">&#160;<span></span>
</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,137<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="text">&#160;<span></span>
</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,418<span></span>
</td>
<td class="text">&#160;<span></span>
</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">15,249<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating loss</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="num">(2,485)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(9,510)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</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="num">(1,124)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(6,216)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit</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">389<span></span>
</td>
<td class="text">&#160;<span></span>
</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,071<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">$ (735)<span></span>
</td>
<td class="text">&#160;<span></span>
</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,145)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars 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="num">$ (0.07)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ (0.45)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars 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="num">$ (0.07)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ (0.45)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Shares used in per-share calculation [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</td>
<td class="text">&#160;<span></span>
</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">9,298<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,848<span></span>
</td>
<td class="text">&#160;<span></span>
</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">9,298<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Change in Method of Inventory Valuation to Average Costing [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Consolidated Statements of Operations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Cost of sales</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">$ 112<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ (133)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</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="num">(112)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">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="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating loss</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="num">(112)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">133<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</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="num">(112)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">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="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax benefit</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">24<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(29)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">$ (88)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 104<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net (loss) income per common share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars 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="num">$ (0.01)<span></span>
</td>
<td class="text">&#160;<span></span>
</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.02<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars 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="num">$ (0.01)<span></span>
</td>
<td class="text">&#160;<span></span>
</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.02<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_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate cost of goods produced and sold and services rendered during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22644-107794<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 15<br> -URI https://asc.fasb.org/extlink&amp;oid=128363288&amp;loc=d3e3842-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1252-109256<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1337-109256<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 18: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI https://asc.fasb.org/extlink&amp;oid=126941158&amp;loc=d3e41242-110953<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32672-109319<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=123586238&amp;loc=d3e38679-109324<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124432515&amp;loc=d3e3550-109257<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=d3e1448-109256<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</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_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</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>84
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221602528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Consolidated Statements of Comprehensive Loss [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</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="num">(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="num">$ (6,158)<span></span>
</td>
<td class="num">(3,860)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Consolidated Statements of Comprehensive Loss [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">(735)<span></span>
</td>
<td class="text">&#160;<span></span>
</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,145)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</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="num">(662)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(3,964)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Change in Method of Inventory Valuation to Average Costing [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Consolidated Statements of Comprehensive Loss [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">(88)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">104<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</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="num">$ (88)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">$ 104<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_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<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(24))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<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 45<br> -Paragraph 5<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=d3e557-108580<br><br>Reference 4: 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(26))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 5: 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 (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<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 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</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_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</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>85
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695220087888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle, Effect of Change on Statements of Cash Flows (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfCashFlowsAbstract', window );"><strong>Consolidated Statements of Cash Flows [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">$ (4,348)<span></span>
</td>
<td class="num">$ (823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">$ (2,089)<span></span>
</td>
<td class="num">$ (5,936)<span></span>
</td>
<td class="num">$ (4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax benefit</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="num">(2,141)<span></span>
</td>
<td class="num">(2,121)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</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="num">$ (4,378)<span></span>
</td>
<td class="nump">3,440<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfCashFlowsAbstract', window );"><strong>Consolidated Statements of Cash Flows [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">(735)<span></span>
</td>
<td class="text">&#160;<span></span>
</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,145)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax benefit</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>
<td class="num">(2,150)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</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>
<td class="nump">3,573<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Change in Method of Inventory Valuation to Average Costing [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfCashFlowsAbstract', window );"><strong>Consolidated Statements of Cash Flows [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">$ (88)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">104<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax benefit</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>
<td class="nump">29<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</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>
<td class="num">$ (133)<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_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI https://asc.fasb.org/extlink&amp;oid=122134291&amp;loc=d3e330036-122817<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=121826272&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfCashFlowsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfCashFlowsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</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_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</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>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695221384976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Change in accounting principle, Effect of Change on Statements of Changes in Shareholders' Equity (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Sep. 30, 2022</div></th>
<th class="th"><div>Jun. 30, 2022</div></th>
<th class="th"><div>Mar. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Sep. 30, 2021</div></th>
<th class="th"><div>Jun. 30, 2021</div></th>
<th class="th"><div>Mar. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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">$ 38,984<span></span>
</td>
<td class="nump">$ 39,361<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,125<span></span>
</td>
<td class="nump">$ 38,984<span></span>
</td>
<td class="nump">$ 30,125<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="nump">$ 260<span></span>
</td>
<td class="nump">$ 528<span></span>
</td>
<td class="num">$ (2,376)<span></span>
</td>
<td class="num">(4,348)<span></span>
</td>
<td class="num">(823)<span></span>
</td>
<td class="nump">$ 901<span></span>
</td>
<td class="num">$ (2,030)<span></span>
</td>
<td class="num">(2,089)<span></span>
</td>
<td class="num">(5,936)<span></span>
</td>
<td class="num">(4,041)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</a></td>
<td class="nump">33,862<span></span>
</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">38,984<span></span>
</td>
<td class="nump">39,361<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">33,862<span></span>
</td>
<td class="nump">38,984<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember', window );">Retained Earnings [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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">15,566<span></span>
</td>
<td class="nump">16,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,607<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
<td class="nump">19,607<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</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">(5,936)<span></span>
</td>
<td class="num">(4,041)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</a></td>
<td class="nump">$ 9,630<span></span>
</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">15,566<span></span>
</td>
<td class="nump">16,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,630<span></span>
</td>
<td class="nump">15,566<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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">38,991<span></span>
</td>
<td class="nump">39,280<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30,236<span></span>
</td>
<td class="nump">38,991<span></span>
</td>
<td class="nump">30,236<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</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="num">(735)<span></span>
</td>
<td class="text">&#160;<span></span>
</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,145)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</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">38,991<span></span>
</td>
<td class="nump">39,280<span></span>
</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">38,991<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember', window );">Previously Reported [Member] | Retained Earnings [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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">15,573<span></span>
</td>
<td class="nump">16,308<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,718<span></span>
</td>
<td class="nump">15,573<span></span>
</td>
<td class="nump">19,718<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</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">15,573<span></span>
</td>
<td class="nump">16,308<span></span>
</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">15,573<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Change in Method of Inventory Valuation to Average Costing [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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="num">(7)<span></span>
</td>
<td class="nump">81<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(111)<span></span>
</td>
<td class="num">(7)<span></span>
</td>
<td class="num">(111)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="text">&#160;<span></span>
</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">(88)<span></span>
</td>
<td class="text">&#160;<span></span>
</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">104<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</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="num">(7)<span></span>
</td>
<td class="nump">81<span></span>
</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">(7)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember', window );">Effect of Change [Member] | Retained Earnings [Member] | Change in Method of Inventory Valuation to Average Costing [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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Consolidated Statements of Changes in Shareholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</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="num">$ (7)<span></span>
</td>
<td class="nump">81<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (111)<span></span>
</td>
<td class="num">$ (7)<span></span>
</td>
<td class="num">(111)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</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="num">$ (7)<span></span>
</td>
<td class="nump">$ 81<span></span>
</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">$ (7)<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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI https://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22595-107794<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI https://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 40<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=126732423&amp;loc=SL123482106-238011<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI https://asc.fasb.org/extlink&amp;oid=124431353&amp;loc=SL124452729-227067<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI https://asc.fasb.org/extlink&amp;oid=126953954&amp;loc=SL114868664-224227<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI https://asc.fasb.org/extlink&amp;oid=126954810&amp;loc=d3e3602-108585<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22499-107794<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22663-107794<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 17: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22583-107794<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126958026&amp;loc=SL5780133-109256<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22658-107794<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669619-108580<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8924-108599<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=124431687&amp;loc=d3e22694-107794<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI https://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI https://asc.fasb.org/extlink&amp;oid=126968391&amp;loc=SL7669625-108580<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8736-108599<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442526-122756<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -URI https://asc.fasb.org/extlink&amp;oid=126975872&amp;loc=SL124442552-122756<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8906-108599<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=126901519&amp;loc=d3e8933-108599<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-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_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI https://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 852<br> -SubTopic 10<br> -Section 55<br> -Paragraph 10<br> -URI https://asc.fasb.org/extlink&amp;oid=84165509&amp;loc=d3e56426-112766<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI https://asc.fasb.org/extlink&amp;oid=122038336&amp;loc=d3e74512-122707<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI https://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI https://asc.fasb.org/extlink&amp;oid=123596393&amp;loc=d3e14064-108612<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI https://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember</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_RestatementAxis=srt_ScenarioPreviouslyReportedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_ScenarioPreviouslyReportedMember</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_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RestatementAxis=srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</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_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis=tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</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>87
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.23.1</span><table class="report" border="0" cellspacing="2" id="idm140695226150816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent events (Details)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2023 </div>
<div>USD ($)</div>
</th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tact_EmployeeRetentionCreditReceivableAbstract', window );"><strong>Subsequent events [Abstract]</strong></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="Show.showAR( this, 'defref_tact_ProceedsFromEmployeeRetentionCredit', window );">Employee retention credit receivable collected</a></td>
<td class="nump">$ 1.5<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tact_EmployeeRetentionCreditReceivableAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_EmployeeRetentionCreditReceivableAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</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_tact_ProceedsFromEmployeeRetentionCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with employee retention credit receivable from the U.S. Government.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">tact_ProceedsFromEmployeeRetentionCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tact_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>form10k2022_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2022"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:tact="http://transact-tech.com/20221231"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="tact-20221231.xsd" xlink:type="simple"/>
    <context id="c20220101to20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="c20230228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2023-02-28</instant>
        </period>
    </context>
    <context id="c20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20201231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20201231_StatementEquityComponentsAxis_TreasuryStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_TreasuryStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</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="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_StatementEquityComponentsAxis_TreasuryStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20210816to20210816">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-08-16</startDate>
            <endDate>2021-08-16</endDate>
        </period>
    </context>
    <context id="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-01</instant>
        </period>
    </context>
    <context id="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-13</instant>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ToolsDiesAndMoldsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FacilityInLasVegasNevadaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-26</startDate>
            <endDate>2022-04-26</endDate>
        </period>
    </context>
    <context id="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FacilityInHamdenConnecticutMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-20</startDate>
            <endDate>2021-04-20</endDate>
        </period>
    </context>
    <context id="c20221231_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PrintrexMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:CasinoAndGamingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PrintrexMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:PosAutomationAndBankingMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:TransactServicesGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">tact:FoodServiceTechnologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2023-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2024-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:ScientificGamesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:TheBrightGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:ScientificGamesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:TheBrightGroupMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:NcrCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:InternationalGameTechnologyPlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tact:NcrCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FurnitureAndOfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:ComputerSoftwareAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">tact:FixedAssetsExcludingConstructionInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:FederalFundsEffectiveSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:RevolvingCreditFacilitySienaLendingGroupLlcMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-07-21</instant>
        </period>
    </context>
    <context id="c20210701to20210701_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">tact:PaycheckProtectionProgramLoanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-07-01</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tact:EquityIncentivePlan2005AndEquityIncentivePlan2014Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_IncomeTaxAuthorityAxis_DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_TaxCreditCarryforwardAxis_ResearchMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_TaxCreditCarryforwardAxis_ResearchMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOperatingLossCarryforwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20050101to20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2005-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ConsolidationItemsAxis">srt:ReportableGeographicalComponentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:PacificRimMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">tact:InternationalMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:GeographicConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20211001to20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20221001to20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2022-10-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c20210401to20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="c20220701to20220930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-09-30</endDate>
        </period>
    </context>
    <context id="c20210701to20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="c20220101to20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="c20210101to20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="c20220401to20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20210930_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-09-30</instant>
        </period>
    </context>
    <context id="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForChangeInAccountingPrincipleAxis">tact:ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:ScenarioPreviouslyReportedMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001017303</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <unit id="U001">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U002">
        <measure>shares</measure>
    </unit>
    <unit id="U003">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U004">
        <measure>tact:Segment</measure>
    </unit>
    <unit id="U005">
        <measure>tact:Solution</measure>
    </unit>
    <unit id="U006">
        <measure>pure</measure>
    </unit>
    <unit id="U007">
        <measure>tact:Plan</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="c20220101to20221231"
      id="Fact_f6a5b19d42bf410783d962a91bc0ba82">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="c20220101to20221231"
      id="Fact_3f2b21b841364f29a81dbc0ee2f1222c">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="c20220101to20221231"
      id="Fact_3c02f09d55b04f4a95a488652f497319">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="c20220101to20221231"
      id="Fact_59791bdf95e94498aa215e35f394f20b">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey
      contextRef="c20220101to20221231"
      id="Fact_bca4e2999aea47379e67da3412482679">0001017303</dei:EntityCentralIndexKey>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_b7a5dc04200f41ee9ee14fafb453e89a"
      unitRef="U001">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member"
      id="Fact_0fb767fdbb19460d8f1b18e429c9fbeb">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20250101Member"
      id="Fact_2611232e0afb4269a39e68f37603f983">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <dei:AuditorFirmId
      contextRef="c20220101to20221231"
      id="Fact_f6c812e84aa049a2a1a4c71972c2109f">688</dei:AuditorFirmId>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20211231"
      id="Fact_cd58adf38f9044d9839a3285fb52113e"
      unitRef="U001"
      xsi:nil="true"/>
    <dei:DocumentType
      contextRef="c20220101to20221231"
      id="Fact_831a2b9bdd3a447ab9671e4f74dc2806">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="c20220101to20221231"
      id="Fact_b9a75528a0474f98bd84ef813be30a76">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="c20220101to20221231"
      id="Fact_f69dcde0a6764584a27151f997918537">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="c20220101to20221231"
      id="Fact_9b0a2025af3641bc8133c64c6563a584">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="c20220101to20221231"
      id="Fact_a6b959406a8f4319b51fd38c02d2b7b2">0-21121</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="c20220101to20221231"
      id="Fact_e585fcc2a45e4e2b9250bfab3bcc1731">TRANSACT TECHNOLOGIES INC</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="c20220101to20221231"
      id="Fact_15f6ae45294943698f4e43b979d20b36">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="c20220101to20221231"
      id="Fact_7889f93d66e44e89b5420e50ef1a2a00">06-1456680</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="c20220101to20221231"
      id="Fact_c925d5faf0b74348bd72e39f8e3990db">One Hamden Center</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="c20220101to20221231"
      id="Fact_27feea6f28254a24b26fb8cba48576cb">2319 Whitney Avenue, Suite 3B</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="c20220101to20221231"
      id="Fact_82e1bbde701f4de1945f9d2c73d31598">Hamden</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="c20220101to20221231"
      id="Fact_f57299e8ee7a41ca9d7eeb1023f199a5">CT</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="c20220101to20221231"
      id="Fact_4fc802ab3a63405b986f01d3c872e590">06518</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="c20220101to20221231"
      id="Fact_413584a19e644f9e853b1dcbd57fb4c3">203</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="c20220101to20221231"
      id="Fact_59a262d9aa4c4ef3b7e5091fb6386070">859-6800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="c20220101to20221231"
      id="Fact_bfa6f02d52d745359e90449a028e47e1">Common stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="c20220101to20221231"
      id="Fact_cd811c59601b4dc78b81323cf96d7f35">TACT</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="c20220101to20221231"
      id="Fact_c81c3830d834452dafb28105e9c8c55d">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="c20220101to20221231"
      id="Fact_4a04559c040143debf202a4ef3e81552">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="c20220101to20221231"
      id="Fact_92b628404cb84416ab7665bbd49af719">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="c20220101to20221231"
      id="Fact_ce555c339187407aa9079e8d81e2f463">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="c20220101to20221231"
      id="Fact_a679060afc8f457faff2b49c5e8d80f2">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="c20220101to20221231"
      id="Fact_a97ead8b1b924fd9b8a4ab14349378d4">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="c20220101to20221231"
      id="Fact_cd52f96d33fa4e649e8c81915406c752">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="c20220101to20221231"
      id="Fact_8f40ad439de845049d870e3067733236">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="c20220101to20221231"
      id="Fact_e81826e9c7b540f691b9e21cfd40a403">false</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="c20220101to20221231"
      id="Fact_4a37b7c6f0bb4687a67ecc1d72859ecb">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="c20220630"
      decimals="0"
      id="Fact_faba8ab24e084b77b935bb8082353038"
      unitRef="U001">38300000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="c20230228"
      decimals="INF"
      id="Fact_b1850eece11547fbb6dabc76217113e6"
      unitRef="U002">9935827</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorName
      contextRef="c20220101to20221231"
      id="Fact_d671bb53687c448b82fc6cc261c2a808">Marcum LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="c20220101to20221231"
      id="Fact_b4a0617deeeb489cbe86d392245d126e">Hartford, Connecticut</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20221231"
      decimals="-3"
      id="Fact_6cb2aa7a89b1444bbea80af4f0b0cc94"
      unitRef="U001">7946000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_65b07f203d864f50a77aae6140da8ef3"
      unitRef="U001">19457000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_162fd256363f42e0a7b101c890aeece9"
      unitRef="U001">13927000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6e3cf5f701014993b2cbacb053406b6f"
      unitRef="U001">7593000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_92bd371ed4a04f48a03ba60a390a48fc"
      unitRef="U001">1500000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:NontradeReceivablesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6f51879449b44089aef9ea9d31477401"
      unitRef="U001">1500000</us-gaap:NontradeReceivablesCurrent>
    <us-gaap:InventoryNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_6046c20402bc4a75a29c1d7adbe18130"
      unitRef="U001">12028000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7082edafaa1842ba8ffac462d94dbf48"
      unitRef="U001">7711000</us-gaap:InventoryNet>
    <us-gaap:PrepaidTaxes
      contextRef="c20221231"
      decimals="-3"
      id="Fact_8d4130cb137d456e9f3c5ec9d95782b0"
      unitRef="U001">0</us-gaap:PrepaidTaxes>
    <us-gaap:PrepaidTaxes
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3384afdc22754c7a95fdedd5fbb59bd5"
      unitRef="U001">137000</us-gaap:PrepaidTaxes>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_fe40ba50c62b4873a91ecad23710696c"
      unitRef="U001">724000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_25798672c3e44a9a9ed19c0233def667"
      unitRef="U001">738000</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e00537d3834a4b8c9f94479b36f0a38b"
      unitRef="U001">36125000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a113519bd2d14d199e8a34496e6b0888"
      unitRef="U001">37136000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e63b912f6a6046a4858bdd6889971c31"
      unitRef="U001">2781000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e613f056c2994a74a4847dab2aad0b2c"
      unitRef="U001">2684000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20221231"
      decimals="-3"
      id="Fact_3d9750ec049c4f778ada75d5c34e42c7"
      unitRef="U001">2488000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="c20211231"
      decimals="-3"
      id="Fact_66b03be0a4b344669c3becb352b40a7c"
      unitRef="U001">2553000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="c20221231"
      decimals="-3"
      id="Fact_d36bb891f1974c73ba9d6deec645598b"
      unitRef="U001">2621000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="c20211231"
      decimals="-3"
      id="Fact_af7e76378d9d4e0097712165c8ba5c45"
      unitRef="U001">2621000</us-gaap:Goodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_b3d02eaa0a3741729347f8966b88887b"
      unitRef="U001">7327000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_50f551d33cfc43e28e8a2eb1e8d1abce"
      unitRef="U001">5143000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="c20221231"
      decimals="-3"
      id="Fact_639e30276e1f4f658fcaf8df4290ca0e"
      unitRef="U001">242000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3d4d22654a5c46328a18adcf5c48cd55"
      unitRef="U001">397000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_c959393fccdc41f1999789535e7a79ba"
      unitRef="U001">248000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_46e316287c454156b8f80afd850cf537"
      unitRef="U001">400000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_d3e2d8fa4b564f5581fac9b431a28233"
      unitRef="U001">15707000</us-gaap:AssetsNoncurrent>
    <us-gaap:AssetsNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b710ebfa17bd496eba69a25f784adc4e"
      unitRef="U001">13798000</us-gaap:AssetsNoncurrent>
    <us-gaap:Assets
      contextRef="c20221231"
      decimals="-3"
      id="Fact_698497e70b534d7692473e82010c4072"
      unitRef="U001">51832000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f03f8d3ef8ab4b1f830057a1f5a04b94"
      unitRef="U001">50934000</us-gaap:Assets>
    <us-gaap:LinesOfCreditCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_d8702e6bdaac42edaf46bfc3fabc00a8"
      unitRef="U001">2250000</us-gaap:LinesOfCreditCurrent>
    <us-gaap:LinesOfCreditCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7042d6f2d02b474abaf7cc73acbfbc92"
      unitRef="U001">0</us-gaap:LinesOfCreditCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_b2044052ac8346d7926cd1b41ff2f00a"
      unitRef="U001">7395000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9a298cf307d745bbab63924fb22b2d56"
      unitRef="U001">4308000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_0e8a1bd2f60b431790d966d785ddd3a7"
      unitRef="U001">4077000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_335ed1db755446f287b9f7f6ba6cf91f"
      unitRef="U001">3894000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_2b3ffd0d8f964100a4ac7498f0c3cbd7"
      unitRef="U001">875000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_5548700f5464404a9559fdf1a380d3c2"
      unitRef="U001">789000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4fa3466082464ccd99dd084603009b1f"
      unitRef="U001">1329000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_0003a07254034144a89cac44425362bf"
      unitRef="U001">805000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_37235067eba349cf864f84a0ba630bd5"
      unitRef="U001">15926000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b51e0999246e4a9ca753c5fd625d6fca"
      unitRef="U001">9796000</us-gaap:LiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_40c7bc4bb807424a8dd43f89132cd62f"
      unitRef="U001">143000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b7534ab1c6524c829ea1f1e2dc209a17"
      unitRef="U001">186000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_1e53514faf6a4ebab7bfe3d8920279a4"
      unitRef="U001">1683000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_67fa3e2712a3455bb36c4c47dfdf3a51"
      unitRef="U001">1781000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4a851d07197f461db51aefa2b3993859"
      unitRef="U001">218000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9685e8247c5f4abb93db0745da6df5d1"
      unitRef="U001">187000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_b01a76739a19455cba1c858939a71086"
      unitRef="U001">2044000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9333871b63024978bacef672a73d1398"
      unitRef="U001">2154000</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="c20221231"
      decimals="-3"
      id="Fact_68662d5bb87943be85bfd33c21dfb321"
      unitRef="U001">17970000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_39673ee0694243ac9891d7f382e1bb48"
      unitRef="U001">11950000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="c20221231"
      id="Fact_1ef3493c51c7434da09ecab64a6cee20"
      unitRef="U001"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20211231"
      decimals="2"
      id="Fact_e03c4000c1444162b3d5f40bd1df04db"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20221231"
      decimals="2"
      id="Fact_31138f2c191e447981831450a10feaf7"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20211231"
      decimals="0"
      id="Fact_386081d4c791452b81e15a1cc10ccfe4"
      unitRef="U002">4800000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20221231"
      decimals="0"
      id="Fact_a84809d944984708b8f18979756e32c1"
      unitRef="U002">4800000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20211231"
      decimals="INF"
      id="Fact_57625c87cca043cc919661a54a2bd97c"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20221231"
      decimals="INF"
      id="Fact_85519cc14dd94e9e8bc663ab9cb2149d"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20211231"
      decimals="INF"
      id="Fact_1423b80b43dc4d20a11e90d5970fe45d"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20221231"
      decimals="INF"
      id="Fact_202be78d04434c0b8d1580619dfd6479"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="c20221231"
      decimals="-3"
      id="Fact_d278b65b2a4140ed86bb3c41ae5345cc"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_975c84526b6041228c5904771dce9952"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="2"
      id="Fact_e58de175e0de4aa3a8f8e9b086a7b04d"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="2"
      id="Fact_477c8e6499f74698a05e96d8e2276b8d"
      unitRef="U003">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="0"
      id="Fact_ba3e080b8a9a4e23a4a13ddb100b5d3d"
      unitRef="U002">200000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="0"
      id="Fact_a7a067bf57764e5db4102215ed41daf9"
      unitRef="U002">200000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_ae54c67a9a7549b4b6c6fb8becdf6ca8"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_bb9ef0eb2a244851bb0cbef128747f74"
      unitRef="U002">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_feedc2ccdb4d408e8fa579c799f9ecf1"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="INF"
      id="Fact_840b242ff0b0446ebdce7724139a6f90"
      unitRef="U002">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="c20221231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="-3"
      id="Fact_27a25c167c444f67ba1fcd636b6626f7"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="c20211231_StatementClassOfStockAxis_SeriesAPreferredStockMember"
      decimals="-3"
      id="Fact_21a5915aa5074f368a3659701853dedd"
      unitRef="U001">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20211231"
      decimals="2"
      id="Fact_aec3bedbee4640e88a2bbc1710c07589"
      unitRef="U003">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c20221231"
      decimals="2"
      id="Fact_5841e8c01523467f8346902ba9f69b23"
      unitRef="U003">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20211231"
      decimals="0"
      id="Fact_562e2c5083ff43d7a847773ec901b00e"
      unitRef="U002">20000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c20221231"
      decimals="0"
      id="Fact_bf7ab2975eb1449897f61d5d314fac18"
      unitRef="U002">20000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20221231"
      decimals="0"
      id="Fact_329fced3f6e34910beb182ad37f7e71f"
      unitRef="U002">13956725</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231"
      decimals="0"
      id="Fact_e0918dfd4eb44ac4a63128173f3748cb"
      unitRef="U002">13917731</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20221231"
      decimals="0"
      id="Fact_e820ee83898144fab85157ded895ef57"
      unitRef="U002">9911883</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="c20211231"
      decimals="0"
      id="Fact_0299730f1c9341a38d88d2f834ccb66e"
      unitRef="U002">9872889</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="c20221231"
      decimals="-3"
      id="Fact_0b857345770243489da18b1237d2930f"
      unitRef="U001">139000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2d17e8d4910c4d05b3bc09d2dcd91ebd"
      unitRef="U001">139000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4aa4bf8f26bb47a5b55babb809f22be1"
      unitRef="U001">56282000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="c20211231"
      decimals="-3"
      id="Fact_78c704ec1185404c938a8be4ca24faea"
      unitRef="U001">55246000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20221231"
      decimals="-3"
      id="Fact_36152f25c2864ee5a2570c309f585a36"
      unitRef="U001">9630000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9cb8f19ba8454142928536bed109fb49"
      unitRef="U001">15566000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20221231"
      decimals="-3"
      id="Fact_27d0b76eb09246079217aa03cf5c6066"
      unitRef="U001">-79000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1add13304e2343139810b4438d38d66b"
      unitRef="U001">143000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:TreasuryStockShares
      contextRef="c20211231"
      decimals="0"
      id="Fact_43b2d251cd8749e9aa313ee2802c8e5c"
      unitRef="U002">4044842</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockShares
      contextRef="c20221231"
      decimals="0"
      id="Fact_a0a0cb2cacca42678c06af9a9670c5a4"
      unitRef="U002">4044842</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="c20221231"
      decimals="-3"
      id="Fact_f74db5c946dd4decb6899da23774252d"
      unitRef="U001">32110000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9d4971bc6dec4b75a50b1d0b5be91e4f"
      unitRef="U001">32110000</us-gaap:TreasuryStockValue>
    <us-gaap:StockholdersEquity
      contextRef="c20221231"
      decimals="-3"
      id="Fact_93f88f915808430bb1bf2e8f7a00e1aa"
      unitRef="U001">33862000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1950198718db4cec84f54dbd8b3ae2fe"
      unitRef="U001">38984000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20221231"
      decimals="-3"
      id="Fact_24495cfce4b14138af330bf96d07c724"
      unitRef="U001">51832000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_6e9de2191ce24a8fadd634df21719a5f"
      unitRef="U001">50934000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_35e4184917f94cd7b154ba19afe3ac7f"
      unitRef="U001">58139000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_dcabf56e3fb74c54b06584ece77551a4"
      unitRef="U001">39386000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfRevenue
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_654e9970f6144f748b2a04a706fce352"
      unitRef="U001">33727000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_98ff22e2963d40a18d50391675d3e7f6"
      unitRef="U001">24004000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_0461bef1b85c4c02b8ae3e5da9aca757"
      unitRef="U001">24412000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_8a7d1464edd64c89a8025d9ba9aa7cf9"
      unitRef="U001">15382000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_b001b0a889c946a8a08b7a95325b80a8"
      unitRef="U001">8570000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c7f07884ca8042da940064576d4bcd3d"
      unitRef="U001">7475000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_a647540563f842779633859c3479dd39"
      unitRef="U001">11326000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_79e714385a9444aa8675318f0874c4e0"
      unitRef="U001">7658000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_d2c6adbe189f45a181ab959a47b4cce0"
      unitRef="U001">12193000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_099856022a6741dfa37186f88bec5584"
      unitRef="U001">9626000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_405178f352634dd685cca0b3e0f4079b"
      unitRef="U001">32089000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_17c2619190af4b9ab3626e880b9e3b05"
      unitRef="U001">24759000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_a47b7e9ecfe44ecb96e3ac04fbabb65e"
      unitRef="U001">-7677000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4e8a0fec36cd436786010aa2ab9e6779"
      unitRef="U001">-9377000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_2b1fa58f746c4ae686b8e5e5f07f69d0"
      unitRef="U001">208000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_22664d13cd1a4e49b92c22963bbb3734"
      unitRef="U001">157000</us-gaap:InterestExpense>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_067f98c9b1d5457abb04e15a77941e70"
      unitRef="U001">0</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:InterestIncomeDomesticDeposits
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c0b7adde50004026b334643f5f05b071"
      unitRef="U001">61000</us-gaap:InterestIncomeDomesticDeposits>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_93f0b7647b21460f96bd3b7cf820056b"
      unitRef="U001">-16000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_35952ac3bd414832bf9e1ed3927d9ada"
      unitRef="U001">-283000</us-gaap:OtherNonoperatingIncomeExpense>
    <tact:GainFromEmployeeRetentionCredit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_e6abc40133a94620b1ac1cb20db0a7fa"
      unitRef="U001">0</tact:GainFromEmployeeRetentionCredit>
    <tact:GainFromEmployeeRetentionCredit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6914d499fbbd491396d0aea7804aed6c"
      unitRef="U001">1500000</tact:GainFromEmployeeRetentionCredit>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_6d7a671cf6a7482b94db8c4134bbc6b3"
      unitRef="U001">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_63cf79d3cca041a386141275de15b05b"
      unitRef="U001">2173000</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_055a55a038a5448abd0c0cb3fc626395"
      unitRef="U001">-224000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6c0e37110da94581b637fc4454565679"
      unitRef="U001">3294000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_80eab53aefcf4ea885ac4b36127b5aa4"
      unitRef="U001">-7901000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e3f169fdf36c4b6abf0245e96e137b1a"
      unitRef="U001">-6083000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_6d69099fd92d4a16b1319235f2d99c54"
      unitRef="U001">-1965000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_10a38633a16347beac8647c55faae11f"
      unitRef="U001">-2042000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_e457789168264fb982458c1c37ba1bd0"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_58287f59b7b749ac9a615b0193fa7019"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_e3e6c0c0209644018e5f06c41a0ff726"
      unitRef="U003">-0.6</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_3491b415e9d84f5697960a486de4a7f5"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_443a0deb93984c35b09888beb1bcbddf"
      unitRef="U003">-0.6</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_905a622f47b94ce3a46701e8a1e41ae2"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_7718d94863bc40eb879e406e66e1099a"
      unitRef="U002">9905000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c5499a0b26b2432ab04d997fc21fb49e"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_d8cdb8cf53b64d25972abf745d00f20d"
      unitRef="U002">9905000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e6810cfefad94b49861cb0811d148b9c"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_f5ebad797ca9488d9d4aad72dc748d97"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2207a2968e1a44478d7b1cac8ce33c94"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_d13b2e2eb188405784aa9908893eacae"
      unitRef="U001">-222000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_be58eec31fea49e0972bd5556163070a"
      unitRef="U001">181000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_28028b711a6444e7ad0d924a761590fb"
      unitRef="U001">-6158000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9a0a13813e4445de9f22b0464b7228c3"
      unitRef="U001">-3860000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20201231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_ef2cedbbee264a36a248ca246613b7f6"
      unitRef="U002">8931385</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_c882cd5a16cf44859f15dd2fd985570d"
      unitRef="U001">130000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_2c362f21801a4d5dafc89cb4c3e349df"
      unitRef="U001">42536000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_4749e7eac4d1433d8199d636f54c790b"
      unitRef="U001">19607000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_c6bd4e4afc424a2d8420c06a60f47ae0"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_ac36fcd748b149c7acbbc9368da43ff3"
      unitRef="U001">-38000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231"
      decimals="-3"
      id="Fact_ceb669d0afae4fee806f9bb70f76ff7a"
      unitRef="U001">30125000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_5e2f3d9d53b24ec48f5b88b3867bd589"
      unitRef="U002">97000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_d8526272f9b243b0bb7a8f912f8486ff"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_42972f0c08ce464faa7c0549979447a5"
      unitRef="U001">436000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_36fa4b0d0c2943c4a9d59c172a5ea27f"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_7798b2fc4db14ad89d86645d27774816"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_5a9997a96ce7456e87d72192b3864121"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_538c87adf8b44f6894ff7460953dae4b"
      unitRef="U001">436000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_30232a88de5244deb41e0072e04b8808"
      unitRef="U002">50525</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_20452fc9c5c84051a3fdc193b2364ffe"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_62e0c78f19464d29b951099940a90796"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_cd4e2f7effd7473bb06997a9f730a832"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_5fe1d5593417455bbf9d5ec5db3f1436"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_7b1d2bc7dd3c40aa8d5863ba270ebead"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4eb3b776b1ee4a92bfd536a4b4f929f9"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_dd3dfb5402f64377aebe0eb46451c7a4"
      unitRef="U002">842375</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ab58b5ddb829492dbf251c4f9aa993c6"
      unitRef="U001">9000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_0d6bece02a9943cf891862e555d500dc"
      unitRef="U001">11201000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_a56b8abe0f394228a3fffe041c8f84bb"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_849662b370ae4d3db2a92070bfab5419"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_8643107028ce4c7b87cc7ce0253a9090"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_500ddb7991ea486697dc4de9466a4bc3"
      unitRef="U001">11210000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_11304ffcac68456981d4bdef1e4a3c2c"
      unitRef="U002">48396</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_b2a7aa74259040249ea619f91ea2faa1"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_9fd8adf31ec44f2a8b8e41c9127e472c"
      unitRef="U001">133000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_286ccfe8aec145669884ccd6be1d3fd4"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_1689b9c7597a403db83edac0cb341f89"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_dcde440390184888bbcabd083eb7465a"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3ba06fdb429541d99f9df068135d1794"
      unitRef="U001">133000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_e45d608f93894eb2a55f0d5975deee39"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_7d090ab9f44c41b7adff12a408806c55"
      unitRef="U001">1206000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_57e6f2b7019c4a25a47093ea01658a84"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_717e9cc192c642a18f214cd994644da4"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_14223890f7984ce896a48c5d1281a971"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_da9c0783ead54d80a77c6dde48ff29a0"
      unitRef="U001">1206000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f5acc481762845989420bfed70060550"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_765d086023b84b37899570ce12167caa"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_ffbd3205ffdf4bf78a741a57ea4984a4"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_3ea27a2ce72b478ab9d67c963bd22776"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_6db5498e659e4ef49f1434eff0db447f"
      unitRef="U001">181000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_97ce5fc0a5684496bd56f5771ba920b4"
      unitRef="U001">181000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_53385f43ec19431f85b5ad8efd0aff41"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_60ce58b9af0142c1b3e61b194370944d"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_6afa2e86fb1246f380ba914bc25a2088"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_b68d9f5d4c624027ab9c816f072adc94"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_323b1a7876dc41f5a8e9b22b7116182a"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e759fe1d1421422ba52aeb37e09114ff"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_94158e4f19cd4c9d853e9dfc953ce7d7"
      unitRef="U002">9872889</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_16634b60d45a429889a7650eb49d7c73"
      unitRef="U001">139000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_47fd6d63eeee46aa840dbcdbcca0da96"
      unitRef="U001">55246000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_cfd37a7724a34065a642ba3a6f2f796c"
      unitRef="U001">15566000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_07175478f4c14b8cbda589f0cb9e8a53"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_fc7bb35f2b074cb4a0e9d145c18c94ef"
      unitRef="U001">143000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_daadc181d7ea4beaa943e6b1c424e701"
      unitRef="U001">38984000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_dfc34ad3a98e42468999eaf1f51125fc"
      unitRef="U002">17500</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_4a6dff39f57d4c8d9c3d5a93762264d7"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_4222c2183b1f47609236144b6463be95"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_98bab54933bd4b8ea13eb5ff122df1b2"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_a10495d46449416fbef6e90909b4c36d"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_d9712c2d5fff4fbbb94a4e917f7cae71"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_aff38c56d73e4402ad7bb722e788e647"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_c655686e313c4ee994276908fc7ddd9f"
      unitRef="U002">47931</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_2ae8080dca9b46aba09762da1239d875"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_738a69a9c8584a46be01ac66f4936af9"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_fa370f5a2b874baf9828153447afd81e"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_fd6ebf1bd614439ab29bc62a2093494d"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_193eb6a28e974805a74af53430081706"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_519091b39ed1465ead2001fb463e5986"
      unitRef="U001">0</us-gaap:StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures>
    <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_8c5df7a018a74998932911bd4004c4dd"
      unitRef="U002">26437</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_083ead3f275c4d0ca0b9f5bd3d93f14a"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_5761852997984bdd8cf30ea0e1d8a606"
      unitRef="U001">119000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_6462c8ca02434764bcd88eb00ff8a8ba"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_f3f4014f2e6343b991f3cf620a7a144d"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_3fc064fbe6264acc9b0b9d80496d7db2"
      unitRef="U001">0</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_eb6a7eec2cf84aefba67720e93dfe071"
      unitRef="U001">119000</us-gaap:StockGrantedDuringPeriodValueSharebasedCompensationForfeited>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_f078b5a58ba64c27937509dc745ba715"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_e9115147e286466a950a4850514813e4"
      unitRef="U001">1155000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_f877810ea8d04030b61a644e18b36e9c"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_2440578cae0f46d6b995d02eda2aba68"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_d44e5c8357314344bedd017d93260133"
      unitRef="U001">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_0654707e0cdb4597b9d2b9558777c490"
      unitRef="U001">1155000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_ffcf779217f04473ba4b370332600a6a"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_49c5463e66344ca2ad8c7aca5f59ae23"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_f29ba7ac8770430eaeef7f017d498692"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_47bbcf8706714bf29630558fad88d352"
      unitRef="U001">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_2b280ac9c37d403b906057769afbc8f4"
      unitRef="U001">-222000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_ae449a7f3e524605ac573624c901f5bd"
      unitRef="U001">-222000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_1f6023f63a3248a691bacd097a0ebe6c"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_d3fc706206a64aafb6c4d240c615c7eb"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_339b0d5ede9c4085bc4fd1e5f8fc18da"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_566507c5615d4ae09dfa3068386c2473"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_20c30e1ff43f4772b3191bed42515684"
      unitRef="U001">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_0cfe6d1a0f3543019cd4c882872ff9fa"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesIssued
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="0"
      id="Fact_2e9a375cc75b455db056e13e2b0091d7"
      unitRef="U002">9911883</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_CommonStockMember"
      decimals="-3"
      id="Fact_fed86ef9f87e4ce3abaf47766ecb4589"
      unitRef="U001">139000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AdditionalPaidInCapitalMember"
      decimals="-3"
      id="Fact_a410f4a29067434e9a3881e37898ae12"
      unitRef="U001">56282000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_ebf0ae8a767f49299349ffe281bbddb2"
      unitRef="U001">9630000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_TreasuryStockMember"
      decimals="-3"
      id="Fact_e4e57e4bb4c5491ba2c212dfd83d338d"
      unitRef="U001">-32110000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231_StatementEquityComponentsAxis_AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="Fact_eec7a50f27e84fa496c502f9aad07dd4"
      unitRef="U001">-79000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20221231"
      decimals="-3"
      id="Fact_296b45cf70914c10a655602d7b14ed0e"
      unitRef="U001">33862000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_ceba85f2f57644d18317e1ae7c3573cf"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a8382c9f954040838fc23afa2bd73656"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:ShareBasedCompensation
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_35ea5bb483ef46a68646835b4c967b7f"
      unitRef="U001">1155000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_152787f17b7149768b7167f2cf10edc1"
      unitRef="U001">1206000</us-gaap:ShareBasedCompensation>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_008592a550f8459fa4e511bc1f1dfe91"
      unitRef="U001">1332000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_78fecbd3258947ada0be41bd89965a14"
      unitRef="U001">957000</us-gaap:DepreciationAndAmortization>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_1a2a2f028b704e899a535d651fa1372c"
      unitRef="U001">-2141000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f89506eeec974ef99591fdb692158de8"
      unitRef="U001">-2121000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:GainLossOnSaleOfProperty
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_4fed4f15c099461c828e80058d5bc458"
      unitRef="U001">-2000</us-gaap:GainLossOnSaleOfProperty>
    <us-gaap:GainLossOnSaleOfProperty
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3d21a44f700f45fc9682aada9dcd1d62"
      unitRef="U001">-9000</us-gaap:GainLossOnSaleOfProperty>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_f1b98056cbc546a4be801242430bc40f"
      unitRef="U001">-6000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_95900211dedd495e8c89018150509525"
      unitRef="U001">-272000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_dc082257c74647e38c451e1c911589c5"
      unitRef="U001">0</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:GainsLossesOnExtinguishmentOfDebt
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9addaedd05e94435a71c83b6aa800c48"
      unitRef="U001">2173000</us-gaap:GainsLossesOnExtinguishmentOfDebt>
    <us-gaap:IncreaseDecreaseInReceivables
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_e2813f6107744104b4491ae61f44d356"
      unitRef="U001">6421000</us-gaap:IncreaseDecreaseInReceivables>
    <us-gaap:IncreaseDecreaseInReceivables
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_05cf18b74c07426e84401c32ff704b82"
      unitRef="U001">4217000</us-gaap:IncreaseDecreaseInReceivables>
    <tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_81817e191e2b4cdf839d968b5bb58cae"
      unitRef="U001">0</tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable>
    <tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_5009644028b2477cbad9bd24cb170d0b"
      unitRef="U001">1500000</tact:IncreaseDecreaseInEmployeeRetentionCreditReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_2ebf13329fcf45688768709919844bb0"
      unitRef="U001">4378000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9f5b6ddaba8347a7842699f87962af07"
      unitRef="U001">-3440000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidTaxes
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_2106137153854e97bb0df24187f89ea4"
      unitRef="U001">-137000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
    <us-gaap:IncreaseDecreaseInPrepaidTaxes
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_6ab2c2716d88467b998cb29887be5ae7"
      unitRef="U001">-2210000</us-gaap:IncreaseDecreaseInPrepaidTaxes>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_48fd2a69ea044c3094be8d6a7be32c6b"
      unitRef="U001">-167000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_83d06c6dfea24f8bae02a84d5ed4b345"
      unitRef="U001">-322000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_007595949b08412080bbb19bb55e8a08"
      unitRef="U001">3103000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_221422b2a22f49d08634e58dd86dd438"
      unitRef="U001">2534000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_054224914ac04f3a95b6ece011e81b3d"
      unitRef="U001">754000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ced357a356274546b2415bc4e949e00e"
      unitRef="U001">592000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_8f52445b790745bdb9b46ad1155da7da"
      unitRef="U001">-12220000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_506711929242488998a1911934275196"
      unitRef="U001">-2510000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_80f0ef048d3f42699a98f50970b19d90"
      unitRef="U001">1299000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_75883db3cbb5469dafdf363291722877"
      unitRef="U001">1384000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_73978dc5ddc94bcd835e7df9721c7b41"
      unitRef="U001">0</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f6d19e9f5af047f8a0fa911505d7b040"
      unitRef="U001">8000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <tact:PaymentsForProceedsFromNotesReceivable
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_85d0f9a9066b484d962e445008f9cc9e"
      unitRef="U001">0</tact:PaymentsForProceedsFromNotesReceivable>
    <tact:PaymentsForProceedsFromNotesReceivable
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9efc727dfa7844e9910b46262fb0356a"
      unitRef="U001">-1598000</tact:PaymentsForProceedsFromNotesReceivable>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_09539b8b35f24da7a009753ac440f5cc"
      unitRef="U001">-1299000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_46247a9a4fb14aaabf853c1b80f236d2"
      unitRef="U001">222000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_4581b0f6bbf04a09bb654009269ca18f"
      unitRef="U001">2250000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_777cef581d4f405c90bac1cd98d839bb"
      unitRef="U001">0</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_21344f1d431441d092388e95047ec658"
      unitRef="U001">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c1b770ec60054cea906943009dd02e70"
      unitRef="U001">436000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_86d1658532d04c8f970979da7f9bff3e"
      unitRef="U001">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_c3d9fad0bf7d4d16920a80d45769761d"
      unitRef="U001">12214000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_76555fb8c277417a94337e00b53d8921"
      unitRef="U001">0</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_af1ed375b84a4a73b7e3a0b4b4f51b70"
      unitRef="U001">1014000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_61adcb7413f8412988d1a2807eb68544"
      unitRef="U001">119000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_91469e2f09fa42fba5e489715d2dcfbe"
      unitRef="U001">133000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsOfLoanCosts
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_eba35471c6a84211bfe71a21fadff4f9"
      unitRef="U001">69000</us-gaap:PaymentsOfLoanCosts>
    <us-gaap:PaymentsOfLoanCosts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a94982492fb7461d9495f5656da6a979"
      unitRef="U001">31000</us-gaap:PaymentsOfLoanCosts>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_0ba7a43d77764ea48c1496ec91bf013a"
      unitRef="U001">2062000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_469ab438058c468f98f739187488e12a"
      unitRef="U001">11472000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_57ec8182f44c435e85ef169adf390a4d"
      unitRef="U001">-54000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_bb657296d96640429b3275e2347073d5"
      unitRef="U001">-86000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_864711d962a646c6943783bf89907460"
      unitRef="U001">-11511000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2e5a586bcf39436697540146fabe8107"
      unitRef="U001">9098000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20211231"
      decimals="-3"
      id="Fact_bdcfa5506a35453d832a5c1def28007d"
      unitRef="U001">19457000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20201231"
      decimals="-3"
      id="Fact_405e88193bc6466d8f43eac8816f9aa2"
      unitRef="U001">10359000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4ceb84b4729a4b2abe46a7771bc46e6a"
      unitRef="U001">7946000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b370ceebfd274dfbb42baa0db7de1af2"
      unitRef="U001">19457000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_9c20382559664f4b91545255b2fe3df7"
      unitRef="U001">129000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_34d024f0cab544549eb957dc195476c4"
      unitRef="U001">76000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaid
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_57de2c03096e4617bdd147d0b0d489a7"
      unitRef="U001">62000</us-gaap:IncomeTaxesPaid>
    <us-gaap:IncomeTaxesPaid
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_5f3bca03710b4aeab1ac0deae9281780"
      unitRef="U001">57000</us-gaap:IncomeTaxesPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_58f019273e54437682b2eee214581d6e"
      unitRef="U001">54000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_05473208ee42431eabf1c174cb23c36f"
      unitRef="U001">82000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:NatureOfOperations
      contextRef="c20220101to20221231"
      id="Text_6875b726ea15451c8fd630914494410d">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;1. Description of business&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Technologies Incorporated (together with its subsidiaries, &#x201c;TransAct,&#x201d; the &#x201c;Company,&#x201d; &#x201c;we,&#x201d; &#x201c;us,&#x201d; or &#x201c;our&#x201d;), which has its headquarters in Hamden, Connecticut and its primary operating facility in Ithaca, New York, operates in one operating segment: software-driven technology and printing solutions for high growth markets including food service technology, casino and gaming and &#x201c;point of sale&#x201d; (&#x201c;POS&#x201d;) automation markets.&#160; Our solutions are designed from the ground up based on market and customer requirements and are sold under the BOHA!&lt;sup&gt;TM&lt;/sup&gt;, AccuDate&#x2122;, Epic, Ithaca&#xae;, and EPICENTRAL product brands.&#160; We sell our products to original equipment manufacturers, value-added resellers, select distributors, and directly to end-users.&#160; Our product distribution spans across the Americas, Europe, the Middle East, Africa, Asia, Australia, New Zealand, the Caribbean Islands and the South Pacific. TransAct also provides world-class service, spare parts, accessories and printing supplies to its growing worldwide installed base of products.&#160; We also generate revenue from the after-market side of the business, providing printer and terminal service, consumables and spare parts in addition to revenue from our two software solutions; (i) our line of BOHA! software applications used to automate the back-of-house operations of restaurants, convenience stores and food service operators and (ii) the EPICENTRAL Print System (&#x201c;EPICENTRAL&#x201d;), that enables casino operators to create promotional coupons and marketing messages and print them in real time at the slot machine.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Impact of the COVID-19 Pandemic and Global Supply Chain Disruptions&lt;/div&gt;

&lt;div style="text-align: justify; margin-right: 0.1pt; margin-left: 0.1pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Since early 2020, the COVID-19 pandemic has continued to cause uncertainty and disruption in the global economy and financial markets.&#160; We have also been impacted by global supply chain issues, increased shipping costs and inflationary pressures, which have increased our costs and, in some instances, slowed our ability to deliver products to our customers.&#160; During 2021, our inventory levels decreased significantly as a result of these supply chain disruptions, and we experienced significantly lower sales levels.&#160; However, during 2022 we were able to increase our inventory levels and minimize the impact to our customers by successfully modifying our products that were affected by supply chain disruptions, as well as sourcing component parts from alternate suppliers.&#160; Although we were able to increase inventory levels during 2022 and expect to continue to do so in 2023, there can be no assurance that new or continuing supply chain disruptions will not affect our products or that we will be able to make timely modifications to address any future supply chain issues that arise.&#160; Further, while we have offset most of our cost increases by increasing prices of our products, there can be no guarantee that we will be able to offset any future cost increases should they arise.&#160; After a slowdown in the first quarter of 2022 resulting from the Omicron and other variants of COVID-19, we continued to experience demand recovery during the remainder of 2022. Based on our strong backlog position and continued market expansion, we expect this recovery to continue into 2023, though the exact timing and pace of recovery may be impacted by global economic conditions.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;Balance Sheet, Cash Flow and Liquidity. &lt;/span&gt;We have taken the following actions to increase liquidity and strengthen our financial position in an effort to mitigate the negative impacts from the COVID-19 pandemic, supply chain disruptions and inflationary pressures:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt;"/&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Public Offering &#x2013; On August 16, 2021, the Company raised net proceeds of $11.2 million (including the exercise of the underwriters overallotment option on August 20, 2021), after deducting underwriting discounts, commissions and offering expenses, through an underwritten public offering and sold an aggregate of 842,375 shares of common stock.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt;"/&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;PPP Loan &#x2013; On May 1, 2020, the Company was granted a $2.2 million loan (the &#x201c;PPP Loan&#x201d;) under the Paycheck Protection Program (the &#x201c;PPP&#x201d;) administered by the Small Business Administration (&#x201c;SBA&#x201d;) established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security (&#x201c;CARES&#x201d;) Act, which enabled us to return employees we furloughed earlier in 2020 to full time employment and to restore employees to full pay following certain pay cuts.&#160; On July 8, 2021, we received notice that the PPP Loan had been forgiven as of July 1, 2021.&#160; See Note 8 for further details regarding the PPP Loan.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt;"/&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Employee Retention Credit &#x2013; Under the provisions of the CARES Act, the Company is eligible for a refundable employee retention credit subject to certain criteria.&#160;&#160;In connection with the CARES Act, the Company recognized the employee retention credit during the fourth quarter of 2021 and recorded $1.5 million as &#x201c;Gain from employee retention credit&#x201d; in the Consolidated Statement of Operations for the year ended December 31, 2021 and the related receivable as &#x201c;Employee retention credit receivable&#x201d; in the Consolidated Balance Sheet as of December 31, 2021 and 2022.&#160; We received these funds in the first quarter of 2023.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt;"/&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On March 13, 2020, we entered into a Credit Facility with Siena Lending Group LLC that provides a revolving credit line of up to $10.0 million, subject to a borrowing base and on July 19, 2022, we entered into an amendment to extend the maturity of the facility to March 13, 2025. See Note 8 for further details regarding this facility.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt;"/&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x25cf;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: justify;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Reduced Capital Expenditures &#x2013; We limited capital expenditures during 2020 and 2021 and gradually increased these expenditures during 2022 as sales improved.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;After reviewing whether conditions and/or events raise substantial doubt about our ability to meet future financial obligations over the 12 months following the date on which the Consolidated Financial Statements included in this &#x201c;Form 10-K&#x201d; were issued, including consideration of the actions taken to manage expenses and liquidity, we believe that our net cash to be provided by operations combined with our cash and cash equivalents and borrowing availability under our revolving credit facility will provide sufficient liquidity to fund our current obligations, capital spending, and working capital requirements and to comply with the financial covenants of our credit facility over at least 12 months following such issuance date.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Use of Assumptions and Estimates&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Management&#x2019;s belief that the Company will be able to fund its planned operations over the 12 months following the date on which the Consolidated Financial Statements were issued is based on assumptions which involve significant judgment and estimates of future revenues, inflation, rising interest rates, capital expenditures and other operating costs. Our current assumptions are that casinos and restaurants will remain open and consumer traffic will continue to increase during the balance of 2023. Though demand for our products at casinos has increased substantially in 2022, and we expect this trend to continue, we cannot predict the ultimate impact of the current economic environment, including inflation, rising interest rates and supply chain disruptions on our customers, which may impact sales. We believe that we are positioned to withstand the impact of any potential economic downturn or slower than anticipated economic recovery. However, despite our significant backlog of orders as of December 31, 2022 and increasing market share during 2022, should such conditions arise, we believe we will be able to take additional financial and operational actions to cut costs and/or increase liquidity.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;In addition, the presentation of the accompanying audited Consolidated Financial Statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenue and expenses, and the disclosure of contingent assets and liabilities. Our estimates include those related to revenue recognition, accounts receivable, inventory obsolescence, goodwill and intangible assets, the valuation of deferred tax assets and liabilities, depreciable lives of equipment, share-based compensation and contingent liabilities. We base our estimates on historical experience and on various other assumptions that we believe to be reasonable under the circumstances. Actual results could differ from those estimates used.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Smaller Reporting Company&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As a smaller reporting company, as defined in Item 10(f)(1) of Regulation S-K, we may choose to prepare our disclosures relying on certain scaled disclosure requirements for smaller reporting companies in Regulation S-K and in Article 8 of Regulation S-X.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The scaled disclosure requirements for smaller reporting companies permit us (i) to include less extensive narrative disclosure than required of other reporting companies, particularly in the description of executive compensation in our proxy statement and (ii) to provide audited financial statements for two fiscal years in our Form 10-K, in contrast to other reporting companies, which must provide audited financial statements for three years.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;We may lose our status as a smaller reporting company on the last day of the fiscal year in which we have (i) public float of at least $250 million as of the last day of the second fiscal quarter and (ii) if we have a public float that does not exceed $700 million as of the last day of the second fiscal quarter and at least $100 million in annual revenues. &lt;/span&gt;&lt;/div&gt;
</us-gaap:NatureOfOperations>
    <us-gaap:NumberOfOperatingSegments
      contextRef="c20220101to20221231"
      decimals="INF"
      id="Fact_657092ad33464a9480ae98b813318733"
      unitRef="U004">1</us-gaap:NumberOfOperatingSegments>
    <tact:NumberOfSoftwareSolutions
      contextRef="c20221231"
      decimals="INF"
      id="Fact_304467109d7347d8a22d0ae3ebffef66"
      unitRef="U005">2</tact:NumberOfSoftwareSolutions>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="c20210816to20210816"
      decimals="-5"
      id="Fact_b7a8ab45bd1845e4959f8cfa47d19a65"
      unitRef="U001">11200000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="c20210816to20210816"
      decimals="0"
      id="Fact_30a1fc9ddec346558a0897870557de7d"
      unitRef="U002">842375</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember"
      decimals="-5"
      id="Fact_ff0f257168b845a992a28dd3b6245ced"
      unitRef="U001">2200000</us-gaap:DebtInstrumentFaceAmount>
    <tact:GainFromEmployeeRetentionCredit
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_f36ff68a1575483eb30399eabd9f7e20"
      unitRef="U001">1500000</tact:GainFromEmployeeRetentionCredit>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_eba0349e625d42388acf7121b5ad4e6e"
      unitRef="U001">10000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="c20220101to20221231"
      id="Text_9527a241fd8745e49657dbef402ee434">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;2. Summary of significant accounting policies&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Principles of consolidation: &lt;/span&gt;The accompanying Consolidated Financial Statements include the audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Use of estimates&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; The preparation of Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Segment reporting&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;: &lt;/span&gt;We apply the provisions of the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) Accounting Standards Codification (&#x201c;ASC&#x201d;) 280, &#x201c;Segment Reporting.&#x201d;&#160; We view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and printing solutions and providing printer and terminal related software, services, supplies and spare parts.&#160; Factors used to identify TransAct&#x2019;s single operating segment include the organizational structure of the Company and the financial information available for evaluation by the chief operating decision-maker in making decisions about how to allocate resources and assess performance.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We consider all highly liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Allowance for doubtful accounts&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We establish an allowance for doubtful accounts to ensure trade receivables are valued appropriately.&#160; We maintain an allowance for doubtful accounts based on a variety of factors, including the length of time receivables are past due, significant one-time events and historical experience.&#160; We record a specific allowance for individual accounts when we become aware of a customer&#x2019;s inability to meet its financial obligations, such as in the case of bankruptcy filings or deterioration in the customer&#x2019;s operating results or financial position.&#160; If circumstances related to customers change, we further adjust estimates of the recoverability of receivables.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table summarizes the activity recorded in the valuation account for accounts receivable:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Years Ended &lt;/span&gt;December 31&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;220&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;140&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deductions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;351&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Inventories:&lt;/span&gt; Inventories are stated at the lower of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#x201c;first-in, first-out&#x201d; (&#x201c;FIFO&#x201d;) costing methodology to the average costing methodology. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. &lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;See Note 16 for a discussion of the change in accounting principle during the second quarter of 2022.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Fixed assets:&lt;/span&gt; Fixed assets are stated at cost.&#160; Depreciation is recorded using the straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is recognized.&#160; Depreciation expense was $1.1 million and $0.7 million in 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Leases:&lt;/span&gt; We account for leases in accordance with ASC 842, &#x201c;Leases&#x201d; (&#x201c;ASC 842&#x201d;), which requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#x201c;Right-of-use asset&#x201d; and &#x201c;Lease liability&#x201d; in our Consolidated Balance Sheets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On April 26, 2022, we entered into an amendment to modify the expiration date of our lease on our Las Vegas, Nevada facility. The lease was set to expire on November 1, 2022 and the amendment extended the lease term to November 30, 2025. The lease amendment resulted in an increase to the right-of-use-asset and lease liability of $0.8 million. The lease amendment modified the base rent.&#160; On April 30, 2021, we entered into an amendment to modify the expiration date of our lease on our Hamden, CT facility.&#160; The lease, which was last amended on January 3, 2017, was scheduled to expire on April 30, 2027.&#160; The lease amendment modified the expiration date to October 31, 2025.&#160; The modification resulted in reducing the right-of-use-asset and lease liability by $0.3 million.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to four years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Goodwill and intangible assets&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#x201c;Goodwill,&#x201d; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#x2019;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of December 31, 2022, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2022 when our annual review for impairment was performed.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Revenue recognition:&lt;/span&gt; We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the &#x201c;expected value&#x201d; method or the &#x201c;most likely amount&#x201d; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#x2019;s judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#x2019;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer and our performance obligation is completed.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#x201c;standalone selling price&#x201d; method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment approach.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31, 2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,602&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;762&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,364&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,657&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,659&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,686&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,343&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,029&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,089&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;998&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,087&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;44,034&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;14,105&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;58,139&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Year Ended &lt;/span&gt;December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,738&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;887&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,625&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,817&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,825&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,173&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,129&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,302&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Printrex&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;171&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;460&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;631&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,501&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;502&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,003&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;32,400&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,986&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,386&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Contract balances&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included within &#x201c;Accounts Receivable, net&#x201d; and &#x201c;Other Assets&#x201d; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#x201c;Accrued Liabilities&#x201d; in current liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2022, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;392&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;314&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;163&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;308&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(101&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(99&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,329&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(805&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(143&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(186&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,018&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(468&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Remaining performance obligations&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our customer.&#160; As of December 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $29.0 million. The Company expects to recognize revenue on $28.7 million of its remaining performance obligations within the next 12 months following December 31, 2022, $0.2 million within the next &lt;span style="-sec-ix-hidden:Fact_0fb767fdbb19460d8f1b18e429c9fbeb"&gt;24&lt;/span&gt; months following December 31, 2022 and the balance of these remaining performance obligations within the next &lt;span style="-sec-ix-hidden:Fact_2611232e0afb4269a39e68f37603f983"&gt;36&lt;/span&gt; months following December 31, 2022.&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Concentration of credit risk:&lt;/span&gt;&#160; Financial instruments that potentially expose us to concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Chain Link Services&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;NCR Corporation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The Bright Group&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;IGT&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Engineering, design and product development:&lt;/span&gt; Engineering, design and product development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $8.6 million and $7.5 million of research and development expenses in 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been included in cost of sales over the estimated life of the product.&#160; During 2019, we contracted several third-parties to develop software for our food service technology products, the cost for which we capitalized.&#160; Unamortized development costs for such software was $242 thousand and $396 thousand as of December 31, 2022 and 2021, respectively. The total amount charged to cost of sales for capitalized software development costs was $154 thousand in both 2022 and 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Advertising:&lt;/span&gt; Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in selling and marketing expense on the accompanying Consolidated Statements of Operations for 2022 and 2021 totaled $3.1 million and $1.8 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Income taxes:&lt;/span&gt; The income tax amounts reflected in the accompanying Consolidated Financial Statements are accounted for under the liability method in accordance with ASC 740, &#x201c;Income Taxes&#x201d; (&#x201c;ASC 740&#x201d;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.&#160; We assess the likelihood that net deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. &lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Foreign currency translation:&lt;/span&gt; The financial position and results of operations of our foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been translated at the weighted average rate for the period, and shareholders&#x2019; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#x2019; equity as a cumulative translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated Statements of Operations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Share-based payments:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;&#160;&lt;/span&gt;At December 31, 2022, we have share-based employee compensation plans, which are described more fully in Note 9 - Stock incentive plans. We account for those plans under the recognition and measurement principles of ASC 718, &#x201c;Compensation &#x2013; Stock Compensation.&#x201d;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the employee&#x2019;s requisite service period.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of the option, stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the determination of compensation expense.&#160; Forfeitures are recognized as they occur.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Net loss per share:&lt;/span&gt; We report net income or loss per share in accordance with ASC 260, &#x201c;Earnings per Share (EPS).&#x201d; Under this guidance, basic EPS, which excludes dilution, is computed by dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore, these instruments are excluded from the computation of diluted EPS.&#160; See Note 11 - Earnings per share.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Change in accounting principle:&lt;/span&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;See Note 16 for a discussion of a change in accounting principle which occurred in the second quarter of 2022. TransAct changed its method of inventory valuation from standard costing which approximates first-in first-out (&#x201c;FIFO&#x201d;) to the average costing methodology. All prior periods presented have been retrospectively adjusted to apply the new method of accounting. Certain prior period amounts have been adjusted to conform with the current year presentation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Reclassifications:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;&#160;&lt;/span&gt;Certain reclassifications have been made to prior year financial statements to conform to classifications used in the current year.&lt;/div&gt;
</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_a05ed4af955d48f9a8e48d290aa3a0e8">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Principles of consolidation: &lt;/span&gt;The accompanying Consolidated Financial Statements include the audited Consolidated Financial Statements of TransAct and its wholly-owned subsidiaries, which require consolidation, after the elimination of intercompany accounts, transactions and unrealized profit. &lt;/div&gt;
</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="c20220101to20221231"
      id="Text_b1b972a8872d4c509b46c4009efc9793">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Use of estimates&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; The preparation of Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;GAAP&#x201d;) requires management to make estimates and assumptions that affect the reported amounts of assets, liabilities, revenue and expenses, and disclosure of contingent assets and liabilities as of the date of the Consolidated Financial Statements and the reported amounts of sales and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt;
</us-gaap:UseOfEstimates>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_04764b470eaa42c684770ef0114aa186">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Segment reporting&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;: &lt;/span&gt;We apply the provisions of the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) Accounting Standards Codification (&#x201c;ASC&#x201d;) 280, &#x201c;Segment Reporting.&#x201d;&#160; We view our operations and manage our business as one segment: the design, development and marketing of software-driven technology and printing solutions and providing printer and terminal related software, services, supplies and spare parts.&#160; Factors used to identify TransAct&#x2019;s single operating segment include the organizational structure of the Company and the financial information available for evaluation by the chief operating decision-maker in making decisions about how to allocate resources and assess performance.&lt;/div&gt;
</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="c20220101to20221231"
      decimals="INF"
      id="Fact_a646e39195854e3cb22aeb85d83e92c2"
      unitRef="U004">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_0e53aba468e44a79aa7368b3cac37178">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Cash and cash equivalents&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We consider all highly liquid investments with a maturity date of three months or less at date of purchase to be cash equivalents.&lt;/div&gt;
</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy
      contextRef="c20220101to20221231"
      id="Text_d375ffa594664df48699e7bb444d3aa8">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Allowance for doubtful accounts&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We establish an allowance for doubtful accounts to ensure trade receivables are valued appropriately.&#160; We maintain an allowance for doubtful accounts based on a variety of factors, including the length of time receivables are past due, significant one-time events and historical experience.&#160; We record a specific allowance for individual accounts when we become aware of a customer&#x2019;s inability to meet its financial obligations, such as in the case of bankruptcy filings or deterioration in the customer&#x2019;s operating results or financial position.&#160; If circumstances related to customers change, we further adjust estimates of the recoverability of receivables.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table summarizes the activity recorded in the valuation account for accounts receivable:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Years Ended &lt;/span&gt;December 31&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;220&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;140&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deductions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;351&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_9d4323ec57024da98dadb1ad2d0eac8d">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table summarizes the activity recorded in the valuation account for accounts receivable:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Years Ended &lt;/span&gt;December 31&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;220&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Additions charged to costs and expenses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;140&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deductions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;351&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_54c7e0114c9f4e3c8e7f7fc5d359b84e"
      unitRef="U001">219000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20201231"
      decimals="-3"
      id="Fact_88a20e03d7d04149be5c9c6b760b1c96"
      unitRef="U001">220000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_79850dfc035b452d92bd32d37f6a015f"
      unitRef="U001">140000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_faf2a2c423dd49d2a6e41ee172a15c6d"
      unitRef="U001">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_ca60a0292ed24aac9eb3e69c0d11dffd"
      unitRef="U001">8000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_742a4a19d0fd4e06b6df6c974f738e87"
      unitRef="U001">1000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_d58463c1625f4ecda4dde637568c42e6"
      unitRef="U001">351000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_30cb65d6a5ed442d96492eeda380c219"
      unitRef="U001">219000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_cbf9ab1a6272485593a81172e5594a9f">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Inventories:&lt;/span&gt; Inventories are stated at the lower of average cost or net realizable value.&#160; We review net realizable value based on estimated selling prices in the ordinary course of business less estimated costs of completions, disposal and transportation, historical usage and estimates of future demand.&#160; Based on these reviews, inventory write-downs are recorded, as necessary, to reflect estimated obsolescence, excess quantities and net realizable value.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the &#x201c;first-in, first-out&#x201d; (&#x201c;FIFO&#x201d;) costing methodology to the average costing methodology. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. &lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;See Note 16 for a discussion of the change in accounting principle during the second quarter of 2022.&lt;/span&gt;&lt;/div&gt;
</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_aa794ae16528441eb764ae2ec6921921">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Fixed assets:&lt;/span&gt; Fixed assets are stated at cost.&#160; Depreciation is recorded using the straight-line method over the estimated useful lives.&#160; The estimated useful life of tooling is five years; machinery and equipment is ten years; furniture and office equipment is five years to ten years; and computer software and equipment is three years to seven years.&#160; Leasehold improvements are amortized over the shorter of the term of the lease or the useful life of the asset.&#160; Costs related to repairs and maintenance are expensed as incurred.&#160; The costs of sold or retired assets are removed from the related asset and accumulated depreciation accounts and any gain or loss is recognized.&#160; Depreciation expense was $1.1 million and $0.7 million in 2022 and 2021, respectively.&lt;/div&gt;
</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ToolsDiesAndMoldsMember"
      id="Fact_c55284f1f0b14297ba96b72f42df18f4">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      id="Fact_67bce9e49b1b4d1a81deb051c338f6c6">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MinimumMember"
      id="Fact_bdeebf1f667341de9916364f3e13afda">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember_RangeAxis_MaximumMember"
      id="Fact_a3e2bf03876e48b08531ffe5083ce955">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MinimumMember"
      id="Fact_c2156240a61b498494d63e3fb99a6dd9">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="c20220101to20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember_RangeAxis_MaximumMember"
      id="Fact_80115fe7917a4176a9d8ba88323953b8">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:Depreciation
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_508ee110d013442e8b1aacaba6884e97"
      unitRef="U001">1100000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_411d12ae6f564b61856a47ed68aa518f"
      unitRef="U001">700000</us-gaap:Depreciation>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_3b66bdb6653c45f5890204e3efcb6f7b">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Leases:&lt;/span&gt; We account for leases in accordance with ASC 842, &#x201c;Leases&#x201d; (&#x201c;ASC 842&#x201d;), which requires lessees to apply a dual approach, classifying leases as either finance or operating leases based on the principle of whether or not the lease is effectively a financed purchase by the lessee. This classification determines whether lease expense is recognized based on an effective interest method for finance leases or on a straight-line basis over the term of the lease for operating leases. A lessee is also required to record a right-of-use asset and a lease liability for all leases with a term of greater than 12 months regardless of their classification.&#160; Leases with a term of 12 months or less are accounted for based on existing guidance for operating leases.&#160; If risks and rewards are conveyed without the transfer of control, the lease is treated as financing. If the lessor does not convey risks and rewards or control, the lease is treated as operating.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We have elected certain practical expedients available under ASC 842 upon adoption. We have applied the practical expedient for short-term leases. We have lease agreements that include lease and non-lease components, and we have not elected the practical expedients to combine these components for any of our leases.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We enter into lease agreements for the use of real estate space and certain equipment under operating leases and we have no financing leases. We determine if an arrangement contains a lease at inception. Our leases are included in &#x201c;Right-of-use asset&#x201d; and &#x201c;Lease liability&#x201d; in our Consolidated Balance Sheets.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Right of use assets represent our right to use an underlying asset for the lease term and lease liabilities represent our obligation to make lease payments arising from the lease. Lease right of use assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On April 26, 2022, we entered into an amendment to modify the expiration date of our lease on our Las Vegas, Nevada facility. The lease was set to expire on November 1, 2022 and the amendment extended the lease term to November 30, 2025. The lease amendment resulted in an increase to the right-of-use-asset and lease liability of $0.8 million. The lease amendment modified the base rent.&#160; On April 30, 2021, we entered into an amendment to modify the expiration date of our lease on our Hamden, CT facility.&#160; The lease, which was last amended on January 3, 2017, was scheduled to expire on April 30, 2027.&#160; The lease amendment modified the expiration date to October 31, 2025.&#160; The modification resulted in reducing the right-of-use-asset and lease liability by $0.3 million.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lease expense is recognized on a straight-line basis over the lease term.&#160; As most of our leases do not provide an implicit rate, the Company determines its incremental borrowing rate by using the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term, an amount equal to the lease payments in a similar economic environment.&#160; Our lease right of use asset excludes lease incentives. Our leases have remaining lease terms of one year to four years, some of which include options to extend.&#160; The exercise of lease renewal options is at our sole discretion and our lease right of use assets and liabilities reflect only the options we are reasonably certain that we will exercise. Lease expense is recognized on a straight-line basis over the lease term.&lt;/div&gt;
</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember"
      decimals="-5"
      id="Fact_4407035f5ea2480d9b789aa15dce47e4"
      unitRef="U001">800000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset
      contextRef="c20220426to20220426_PropertyPlantAndEquipmentByTypeAxis_FacilityInLasVegasNevadaMember"
      decimals="-5"
      id="Fact_86d378144d594fc6ba603c2808a22a9e"
      unitRef="U001">800000</tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember"
      decimals="-5"
      id="Fact_9e5ca2725025413dbc30fb8c2ed64c91"
      unitRef="U001">-300000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset
      contextRef="c20210420to20210420_PropertyPlantAndEquipmentByTypeAxis_FacilityInHamdenConnecticutMember"
      decimals="-5"
      id="Fact_2e15e2dee19941d98715d361c9e2a66a"
      unitRef="U001">-300000</tact:IncreaseDecreaseInOperatingLeaseRightOfUseAsset>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="c20221231_RangeAxis_MinimumMember"
      id="Fact_4c6bc40d313a452b96b1ce94ce1288ff">P1Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseRemainingLeaseTerm
      contextRef="c20221231_RangeAxis_MaximumMember"
      id="Fact_cc0ccf5457b44d5ba6035049240ff8ca">P4Y</us-gaap:LesseeOperatingLeaseRemainingLeaseTerm>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_980b65c72a8b4e72b76eb381dcf66c9b">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Goodwill and intangible assets&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;:&lt;/span&gt; We acquire businesses in purchase transactions that result in the recognition of goodwill and intangible assets. The determination of the value of intangible assets requires management to make estimates and assumptions. In accordance with ASC 350-20 &#x201c;Goodwill,&#x201d; acquired goodwill is not amortized but is subject to impairment testing at least annually and when an event occurs or circumstances change that indicate it is more likely than not an impairment exists.&#160; We perform a fair value-based impairment test to the carrying value of goodwill and indefinite-lived intangible assets on an annual basis and, if certain events or circumstances indicate that an impairment loss may have been incurred, on an interim basis.&#160; The Company utilizes the option to first assess qualitative factors to determine whether it is necessary to perform the Step 1 quantitative goodwill impairment test in accordance with the applicable accounting standards. Under the qualitative assessment, management considers relevant events and circumstances including but not limited to macroeconomic conditions, industry and market considerations, Company performance and events directly affecting the Company. If the Company determines that the Step 1 quantitative impairment test is required, management estimates the fair value of the reporting unit primarily using the income approach, which reflects management&#x2019;s cash flow projections, and also evaluates the fair value using the market approach. Factors considered that may trigger an interim period impairment review of either acquired goodwill or intangible assets are: significant underperformance relative to expected historical or projected future operating results; significant changes in the manner of use of acquired assets or the strategy for the overall business; significant negative industry or economic trends; and significant decline in market capitalization relative to net book value. Finite lived intangible assets are amortized and are tested for impairment when appropriate.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of December 31, 2022, we have determined that no goodwill or intangible asset impairment has occurred and the fair value of goodwill was substantially higher than our carrying value based on our assessment as of December 31, 2022 when our annual review for impairment was performed.&lt;/div&gt;
</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetImpairment
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_ca1af0f842de46e8ba921bccaeffb2c9"
      unitRef="U001">0</us-gaap:GoodwillAndIntangibleAssetImpairment>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_a1a709585b10474292c74696e24e91d9">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Revenue recognition:&lt;/span&gt; We account for revenue in accordance with ASC Topic 606: Revenue from Contracts with Customers.&#160; In accordance with ASC 606, a performance obligation is a promise in a contract with a customer to transfer a distinct good or service to the customer. Some of our contracts with customers contain a single performance obligation, while other contracts contain multiple performance obligations (most commonly when contracts include a hardware product, software and extended warranties).&#160; A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The transaction price is determined based on the consideration to which the Company will be entitled in exchange for transferring services to the customer.&#160; To the extent the transaction price includes variable consideration, such as price protection, reserves for returns and other allowances, the Company estimates the amount of variable consideration that should be included in the transaction price utilizing either the &#x201c;expected value&#x201d; method or the &#x201c;most likely amount&#x201d; method depending on the nature of the variable consideration.&#160; Variable consideration is included in the transaction price if, in the Company&#x2019;s judgment, it is probable that a significant future reversal of cumulative revenue under the contract will not occur.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For a majority of our revenue, which consists of printers, terminals, consumables, and replacement parts, the Company recognizes revenue as of a point of time.&#160; The transaction price is recognized upon shipment of the order when control of the goods is transferred to the customer and at the time the performance obligation is fulfilled.&#160; We also sell a software solution in our casino and gaming market, EPICENTRAL, that enables casino operators to create promotional coupons and marketing messages and to print them in real time at the slot machine.&#160; EPICENTRAL is primarily comprised of both a software component, which is licensed to the customer, and a hardware component.&#160; EPICENTRAL software and hardware are integrated to deliver the system&#x2019;s full functionality.&#160; The transaction prices from EPICENTRAL software license and hardware are recognized upon installation and formal acceptance by the customer when control of the license is transferred to the customer.&#160; For out-of-warranty repairs, the transaction price is recognized after the repair work is completed and the printer or terminal is returned to the customer, as control of the product is transferred to the customer and our performance obligation is completed.&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Performance obligations are satisfied over time if the customer receives the benefits as we perform work, if the customer controls the asset as it is being produced, or if the product being produced for the customer has no alternative use and we have a contractual right to payment.&#160; For our separately priced extended warranty, BOHA! cloud-based software applications, technical support for our food service technology terminals and maintenance agreements (including free one-year maintenance received by customers upon completion of EPICENTRAL installation) revenue is recognized over time as the customer receives the benefit.&#160; The transaction price from the maintenance services is recognized ratably over time, using output methods, as control of the services is transferred to the customer.&#160; Our cloud-based BOHA! software allows customers to use hosted software over the contract period on a subscription basis without taking possession of the software and the subscription price is recognized ratably over the contract period.&#160; For extended warranties, the transaction price is recognized ratably over the warranty period, using output methods, as control of the services is transferred to the customer.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;When there is more than one performance obligation in a customer arrangement, the Company typically uses the &#x201c;standalone selling price&#x201d; method to determine the transaction price to allocate to each performance obligation. The Company sells the performance obligations separately and has established standalone selling prices for its products and services. In the case of an overall price discount, the discount is applied to each performance obligation proportionately based on standalone selling price. To determine the standalone selling price for initial EPICENTRAL installations, the Company uses the adjusted market assessment approach.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For contracts with terms of less than 12 months, the Company expenses sales commissions as they are incurred, since the expected amortization period of the cost to obtain a contract is less than 12 months.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31, 2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,602&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;762&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,364&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,657&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,659&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,686&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,343&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,029&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,089&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;998&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,087&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;44,034&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;14,105&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;58,139&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Year Ended &lt;/span&gt;December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,738&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;887&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,625&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,817&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,825&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,173&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,129&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,302&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Printrex&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;171&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;460&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;631&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,501&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;502&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,003&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;32,400&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,986&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,386&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Contract balances&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Contract assets consist of unbilled receivables.&#160; Pursuant to the over-time revenue recognition model, revenue may be recognized prior to the customer being invoiced. An unbilled receivable is recorded to reflect revenue that is recognized when such revenue exceeds the amount invoiced to the customer. Unbilled receivables are separated into current and non-current assets and included within &#x201c;Accounts Receivable, net&#x201d; and &#x201c;Other Assets&#x201d; on the Consolidated Balance Sheets.&#160; We first recorded contract assets during 2020 upon the start of a long-term BOHA! contract.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Contract liabilities consist of customer prepayments and deferred revenue.&#160; Customer prepayments are reported as &#x201c;Accrued Liabilities&#x201d; in current liabilities in the Consolidated Balance Sheets and represent customer payments made in advance of performance obligations in instances where credit has not been extended and is recognized as revenue when the performance obligation is complete.&#160; Deferred revenue is reported separately in current liabilities and non-current liabilities and consists of our extended warranty contracts, technical support for our food service technology terminals, EPICENTRAL maintenance contracts and prepaid software subscriptions for our BOHA! software applications, and is recognized as revenue as (or when) we perform under the contract. During the year ended December 31, 2022, we recognized revenue of $1.1 million related to our contract liabilities as of December 31, 2021.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;392&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;314&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;163&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;308&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(101&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(99&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,329&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(805&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(143&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(186&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,018&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(468&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Remaining performance obligations&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining performance obligations represent the transaction price of firm orders for which a good or service has not been delivered to our customer.&#160; As of December 31, 2022, the aggregate amount of the transaction price allocated to remaining performance obligations was $29.0 million. The Company expects to recognize revenue on $28.7 million of its remaining performance obligations within the next 12 months following December 31, 2022, $0.2 million within the next &lt;span style="-sec-ix-hidden:Fact_0fb767fdbb19460d8f1b18e429c9fbeb"&gt;24&lt;/span&gt; months following December 31, 2022 and the balance of these remaining performance obligations within the next &lt;span style="-sec-ix-hidden:Fact_2611232e0afb4269a39e68f37603f983"&gt;36&lt;/span&gt; months following December 31, 2022.&lt;/div&gt;
</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation
      contextRef="c20220101to20221231"
      id="Fact_7cf1bb7ea0d44530badecc849eec372b">P1Y</tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_6ec54f25df26416e9ccd831af7f9af1f">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Disaggregation of revenue&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following table disaggregates our revenue by market type, as we believe it best depicts how the nature, amount, timing and uncertainty of our revenue and cash flows are affected by economic factors.&#160; Sales and usage-based taxes are excluded from revenues.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31, 2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,602&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;762&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,364&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,657&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,659&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,686&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,343&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,029&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,089&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;998&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,087&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;44,034&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;14,105&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;58,139&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Year Ended &lt;/span&gt;December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;&#160;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: top; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Food service technology&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,738&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;887&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,625&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;POS automation&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,817&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,825&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Casino and gaming&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,173&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,129&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,302&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Printrex&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;171&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;460&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;631&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 7.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;TransAct Services Group&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,501&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;502&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,003&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; margin-left: 16.2pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net sales&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;32,400&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,986&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,386&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_07b868794b34419db70fe34b34993634"
      unitRef="U001">11602000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_afe6b1d0560f425183609a2b7c115e29"
      unitRef="U001">762000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_FoodServiceTechnologyMember"
      decimals="-3"
      id="Fact_f7c750099e13481fa2f75b2f580a5f5d"
      unitRef="U001">12364000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_2b24c8d28f45491aaad4bc9d7ec19105"
      unitRef="U001">10657000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_6fb236f7b91a4216b26194368a8f5780"
      unitRef="U001">2000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_PosAutomationAndBankingMember"
      decimals="-3"
      id="Fact_042aa47cfb304b868c9fb32c03a7d201"
      unitRef="U001">10659000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_1ff4c6690fe743af87e22223076d3efa"
      unitRef="U001">17686000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_8cda49ec629f4335a1c010716dcc17ad"
      unitRef="U001">12343000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_CasinoAndGamingMember"
      decimals="-3"
      id="Fact_0b9d53f275c547699c6d186ef7a7f2c9"
      unitRef="U001">30029000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_7657b5232e6e4cef8998af6952a59bcf"
      unitRef="U001">4089000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_0aff425dd99645e69d4c2b940580f4b9"
      unitRef="U001">998000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ProductOrServiceAxis_TransactServicesGroupMember"
      decimals="-3"
      id="Fact_a8589516877040928d9fd26a9aaef7d8"
      unitRef="U001">5087000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_9b58b4c959ef46a1b5151013bb03f665"
      unitRef="U001">44034000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_d41c23a5b1bf4dcda720e7081423e466"
      unitRef="U001">14105000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_63d9822502bf40d3a9ae39b49dcbce48"
      unitRef="U001">58139000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_b1f34f8746174ebfbe49f9c7ff11ef8b"
      unitRef="U001">11738000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_e58db868e69b4b2396d604e351f223de"
      unitRef="U001">887000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_FoodServiceTechnologyMember"
      decimals="-3"
      id="Fact_12ce65e3858a42eebb4345e44edca3c0"
      unitRef="U001">12625000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_4c137f8d077f430f80fe31aee7cc78ef"
      unitRef="U001">4817000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_05be94044df8416398c177b2ef2f88ba"
      unitRef="U001">8000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PosAutomationAndBankingMember"
      decimals="-3"
      id="Fact_97c1f0df5dd54ea5bf124768659ec1a2"
      unitRef="U001">4825000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_e5fe4f92832a4a22b4e51a56de65b96e"
      unitRef="U001">10173000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_66856602af6b4c1994738a5177050ce5"
      unitRef="U001">5129000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_CasinoAndGamingMember"
      decimals="-3"
      id="Fact_d8bb5d816d8a4f099b74ffcdef02411b"
      unitRef="U001">15302000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_a704531458af4ddcb7a378b967669d3b"
      unitRef="U001">171000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_b28394c21d50492ba73dcc59432e00dc"
      unitRef="U001">460000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_PrintrexMember"
      decimals="-3"
      id="Fact_544c23d73f53459692872032de1361fa"
      unitRef="U001">631000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_103db93f911241c7adf497e759b174ab"
      unitRef="U001">5501000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_59e82a22d865452eb6208094c3e24dd8"
      unitRef="U001">502000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ProductOrServiceAxis_TransactServicesGroupMember"
      decimals="-3"
      id="Fact_2dd5badce2d742bcb71b779b003a1aad"
      unitRef="U001">6003000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_9560e7959bbc4f098505c12cef6f37e5"
      unitRef="U001">32400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_f776727144004b789e9d0eb8d314c92e"
      unitRef="U001">6986000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_1bfc787299a6466381df32a7ce2d32df"
      unitRef="U001">39386000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <tact:ContractWithCustomerRevenueRecognized
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_c4014e8fe8e341cf905cc0bb181fbac1"
      unitRef="U001">1100000</tact:ContractWithCustomerRevenueRecognized>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_0c495f37a8194cab9d4cd8868ba7bdc6">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets consist of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;(In thousands)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;392&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;314&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Unbilled receivables, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;163&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;308&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Customer pre-payments&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(101&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(99&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,329&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(805&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue, non-current&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(143&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(186&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net contract (liabilities) assets&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,018&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(468&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_abffa07e37264a4ca4bb0605571e4612"
      unitRef="U001">392000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_375d7a93115442b4b6ccf1e3e0f44f82"
      unitRef="U001">314000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_324586d1cb9c4058b9fadad4473c3a42"
      unitRef="U001">163000</us-gaap:ContractWithCustomerAssetNetNoncurrent>
    <us-gaap:ContractWithCustomerAssetNetNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_12504cb94d644389acb6978e8dfadbfd"
      unitRef="U001">308000</us-gaap:ContractWithCustomerAssetNetNoncurrent>
    <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_b3a482dac3594708b44af11fbb398e4b"
      unitRef="U001">101000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
    <tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ad21cbbe71874dfe8163c48e66459318"
      unitRef="U001">99000</tact:ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_5558177efb9f48feb224e507ee2463e2"
      unitRef="U001">1329000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b635375e6a014fd788dcd2c2c318eb2b"
      unitRef="U001">805000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_9b6157f0af084cfa95fa143453ca88e6"
      unitRef="U001">143000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_efec040603154d37b3b62ed99590dc46"
      unitRef="U001">186000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <tact:ContractWithCustomerAssetLiabilityNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_78e6eb911c574b45b031e1460141cd63"
      unitRef="U001">-1018000</tact:ContractWithCustomerAssetLiabilityNet>
    <tact:ContractWithCustomerAssetLiabilityNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c5120791355c495b91e5cced18cc57e5"
      unitRef="U001">-468000</tact:ContractWithCustomerAssetLiabilityNet>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20221231"
      decimals="-5"
      id="Fact_d486a8fef49b476190fd8746afbf5e37"
      unitRef="U001">29000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member"
      decimals="-5"
      id="Fact_1720bc18dfa447edbe450a412c6c7695"
      unitRef="U001">28700000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20230101Member"
      id="Fact_e55cdacc9187468a9eb398fb8e3d240f">P12M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="c20221231_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_20240101Member"
      decimals="-5"
      id="Fact_d45056dd3c274760a3606afb1d11d118"
      unitRef="U001">200000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="c20220101to20221231"
      id="Text_2b299792be934052a24c455928d01035">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Concentration of credit risk:&lt;/span&gt;&#160; Financial instruments that potentially expose us to concentrations of credit risk are limited to cash and cash equivalents held by our banks in excess of insured limits and accounts receivable.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Chain Link Services&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;NCR Corporation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The Bright Group&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;IGT&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="c20220101to20221231"
      id="Text_89671cac314b4e19b53d7b979330c1ee">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accounts receivable from customers representing 10% or more of total accounts receivable, net were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Chain Link Services&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International Gaming Technology (&#x201c;IGT&#x201d;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;NCR Corporation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The Bright Group&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Sales to customers representing 10% or more of total net sales were as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;IGT&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember"
      decimals="0"
      id="Fact_3a4a6b3336f749038c2626f40f3db4ee"
      unitRef="U006">0</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember"
      decimals="2"
      id="Fact_edc07af97a4544a3b29a4f3488dce9b8"
      unitRef="U006">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_24f0badf309548a6bdfcb19a02e84266"
      unitRef="U006">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_d01f4ebc963148858bce5b4761ccf779"
      unitRef="U006">0.03</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember"
      decimals="2"
      id="Fact_e56d78d1107d4c6f8cc78f298cbb16c0"
      unitRef="U006">0.03</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_NcrCorporationMember"
      decimals="2"
      id="Fact_23739239cd5b4201b60d790b976792a1"
      unitRef="U006">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember"
      decimals="2"
      id="Fact_39c29c7f54984c819519687c3e6bb231"
      unitRef="U006">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_TheBrightGroupMember"
      decimals="0"
      id="Fact_9c51698f35f74eff989d35e5ff5942e3"
      unitRef="U006">0</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_d276ac642d2f47bab1e653fa8e770084"
      unitRef="U006">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_InternationalGameTechnologyPlcMember"
      decimals="2"
      id="Fact_923d63e0f8bd49618f2cf3427cd5cfe0"
      unitRef="U006">0.09</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ResearchAndDevelopmentExpensePolicy
      contextRef="c20220101to20221231"
      id="Text_e4c89041ce964f63a3ab9bd4f1a00125">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Engineering, design and product development:&lt;/span&gt; Engineering, design and product development expenses include expenses incurred in connection with specialized engineering and design to introduce new products and to customize existing products, and are expensed as a component of operating expenses as incurred.&#160; We recorded $8.6 million and $7.5 million of research and development expenses in 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Costs incurred in the engineering, design and product development of a computer software product are charged to expense until technological feasibility has been established, at which point all material software costs are capitalized within Intangible assets in our Consolidated Balance Sheet until the product is available for general release to customers.&#160; While judgment is required in determining when technological feasibility of a product is established, we have determined that it is reached after all high-risk development issues have been documented in a formal detailed plan design.&#160; The amortization of these costs has been included in cost of sales over the estimated life of the product.&#160; During 2019, we contracted several third-parties to develop software for our food service technology products, the cost for which we capitalized.&#160; Unamortized development costs for such software was $242 thousand and $396 thousand as of December 31, 2022 and 2021, respectively. The total amount charged to cost of sales for capitalized software development costs was $154 thousand in both 2022 and 2021.&lt;/div&gt;
</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_922f04fdaac34f129ec0c9a40d1d1307"
      unitRef="U001">8600000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_006c64b6f2e140768e0bc2b391c2c8ba"
      unitRef="U001">7500000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_8e06f1a054f94ac6a1043336b0499ae1"
      unitRef="U001">242000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7fca6a7187aa406f9a2dbb924b0b0959"
      unitRef="U001">396000</us-gaap:CapitalizedComputerSoftwareNet>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_03a31a31607a4b72b390dd846055a0f1"
      unitRef="U001">154000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:CapitalizedComputerSoftwareAmortization1
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_bb711623a9f742bf8a84ed0ef7102cbf"
      unitRef="U001">154000</us-gaap:CapitalizedComputerSoftwareAmortization1>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_640142caf0ca49c68703632c34f3c261">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Advertising:&lt;/span&gt; Advertising costs are expensed as incurred.&#160; Advertising expenses, which are included in selling and marketing expense on the accompanying Consolidated Statements of Operations for 2022 and 2021 totaled $3.1 million and $1.8 million, respectively. These expenses include items such as consulting, professional services, tradeshows, and print advertising.&lt;/div&gt;
</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_8fad1200199648688c449cc023bbc32e"
      unitRef="U001">3100000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_92361189e6de43ea9cc02e3583077d6e"
      unitRef="U001">1800000</us-gaap:AdvertisingExpense>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_fec5bc44f8b047c49ba621837b28bd1b">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Income taxes:&lt;/span&gt; The income tax amounts reflected in the accompanying Consolidated Financial Statements are accounted for under the liability method in accordance with ASC 740, &#x201c;Income Taxes&#x201d; (&#x201c;ASC 740&#x201d;).&#160; Deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax bases and operating loss and tax credit carryforwards.&#160; Deferred tax assets and liabilities are measured using enacted tax rates in effect for the year in which those temporary differences are expected to be recovered or settled.&#160; We assess the likelihood that net deferred tax assets will be realized from future taxable income, and to the extent that we believe that realization is not likely, we establish a valuation allowance.&#160; In accordance with ASC 740, we identified, evaluated and measured the amount of benefits to be recognized for our tax return positions. &lt;/div&gt;
</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_58ecfc84d1294622a88d78fe023cff0a">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Foreign currency translation:&lt;/span&gt; The financial position and results of operations of our foreign subsidiary in the UK are measured using local currency as the functional currency.&#160; Assets and liabilities of such subsidiary have been translated into U.S. dollars at the year-end exchange rate, related sales and expenses have been translated at the weighted average rate for the period, and shareholders&#x2019; equity has been translated at historical exchange rates.&#160; The resulting translation gains or losses, net of tax, are recorded in shareholders&#x2019; equity as a cumulative translation adjustment, which is a component of accumulated other comprehensive income and loss.&#160; Foreign currency transaction gains and losses, including those related to intercompany balances, are recognized in Other, net on the Consolidated Statements of Operations.&lt;/div&gt;
</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="c20220101to20221231"
      id="Text_b53c3849ef1047b4a88c7708233d8454">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Share-based payments:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;&#160;&lt;/span&gt;At December 31, 2022, we have share-based employee compensation plans, which are described more fully in Note 9 - Stock incentive plans. We account for those plans under the recognition and measurement principles of ASC 718, &#x201c;Compensation &#x2013; Stock Compensation.&#x201d;&#160; Share-based compensation expense is measured at the grant date, based on the estimated fair value of the award, and is recognized as expense over the employee&#x2019;s requisite service period.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We use the Black-Scholes option-pricing model to calculate the fair value of share-based awards.&#160; The key assumptions for this valuation method include the expected term of the option, stock price volatility, risk-free interest rate, dividend yield, market price of our underlying stock and exercise price.&#160; Many of these assumptions require judgment and are highly sensitive in the determination of compensation expense.&#160; Forfeitures are recognized as they occur.&lt;/div&gt;
</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="c20220101to20221231"
      id="Text_c2650dafd7124c12aa8a667df749323e">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Net loss per share:&lt;/span&gt; We report net income or loss per share in accordance with ASC 260, &#x201c;Earnings per Share (EPS).&#x201d; Under this guidance, basic EPS, which excludes dilution, is computed by dividing income or loss available to common shareholders by the weighted average number of common shares outstanding for the period.&#160; Diluted EPS reflects the potential dilution that could occur if securities or other contracts to issue common stock were exercised or converted into common stock.&#160; Diluted EPS includes in-the-money stock options using the treasury stock method.&#160; During a loss period, the assumed exercise of in-the-money stock options has an anti-dilutive effect, and therefore, these instruments are excluded from the computation of diluted EPS.&#160; See Note 11 - Earnings per share.&lt;/div&gt;
</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription
      contextRef="c20220101to20221231"
      id="Text_f7df841837f643969d91cc9c5fe59032">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Change in accounting principle:&lt;/span&gt;&#160;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;See Note 16 for a discussion of a change in accounting principle which occurred in the second quarter of 2022. TransAct changed its method of inventory valuation from standard costing which approximates first-in first-out (&#x201c;FIFO&#x201d;) to the average costing methodology. All prior periods presented have been retrospectively adjusted to apply the new method of accounting. Certain prior period amounts have been adjusted to conform with the current year presentation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Reclassifications:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold;"&gt;&#160;&lt;/span&gt;Certain reclassifications have been made to prior year financial statements to conform to classifications used in the current year.&lt;/div&gt;
</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_45f20a4b3277462ca95d5c449cb1d13e">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;3. Inventories&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of inventories are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;*&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,884&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,499&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Work-in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,201&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,028&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,711&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;see Note 16, Change in Accounting Principle&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_acb339a4c4204e22963c053bc787167a">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of inventories are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;*&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Raw materials and purchased component parts&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,884&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,499&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Work-in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Finished goods&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,201&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,028&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,711&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;see Note 16, Change in Accounting Principle&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves
      contextRef="c20221231"
      decimals="-3"
      id="Fact_383e1c3ae647446a8e2cda380803b969"
      unitRef="U001">8884000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
    <us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d99944a3e1f943ada1ce8d3ec4616c9d"
      unitRef="U001">5499000</us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="c20221231"
      decimals="-3"
      id="Fact_c0496853979645a0a4a0c16789d065b5"
      unitRef="U001">0</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_48e0efa6a1584d8eacc69242fb17e3fd"
      unitRef="U001">11000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="c20221231"
      decimals="-3"
      id="Fact_5596b4b9d5e5411997deba4fd56a1cd2"
      unitRef="U001">3144000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b706629202f8498992516dfd4b22386c"
      unitRef="U001">2201000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_ef88a11ee47b48c39d812d0d94a487af"
      unitRef="U001">12028000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_b397cc039c7c4d228b03f980ec1902b7"
      unitRef="U001">7711000</us-gaap:InventoryNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_6697c269e1004f1fa4e0153504dd2c36">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;4. Fixed assets, net&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of fixed assets, net are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Tooling, machinery and equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,859&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,694&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Furniture and office equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,882&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,660&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Computer software and equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,348&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,973&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,883&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,872&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,972&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;18,199&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less: Accumulated depreciation and amortization&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(17,656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(16,736&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,316&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Construction in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;465&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,221&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,781&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,684&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="c20220101to20221231"
      id="Text_e566dc614a22472a8bcf8ff67893e125">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of fixed assets, net are:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Tooling, machinery and equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,859&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,694&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Furniture and office equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,882&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,660&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Computer software and equipment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,348&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,973&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Leasehold improvements&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,883&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,872&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,972&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;18,199&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less: Accumulated depreciation and amortization&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(17,656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(16,736&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,316&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Construction in-process&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;465&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,221&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,781&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,684&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      decimals="-3"
      id="Fact_566e8de61b47431abdb0ec96b71d9e1f"
      unitRef="U001">6859000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_MachineryAndEquipmentMember"
      decimals="-3"
      id="Fact_5fc575fb6a1a4077b92ceaeaab0938a5"
      unitRef="U001">6694000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"
      decimals="-3"
      id="Fact_8d5d29a4b7114944bd592d42e241f5a6"
      unitRef="U001">1882000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_FurnitureAndOfficeEquipmentMember"
      decimals="-3"
      id="Fact_539d3f37ac9247fdacb1f51963056855"
      unitRef="U001">1660000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"
      decimals="-3"
      id="Fact_e5fccc77f88041b882c237c6a9b3764d"
      unitRef="U001">8348000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_ComputerSoftwareAndEquipmentMember"
      decimals="-3"
      id="Fact_a0691825d45e4a33b4de1249b999ffea"
      unitRef="U001">6973000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_12ed6798203f411f9ccf1fc0384c1c2f"
      unitRef="U001">2883000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_LeaseholdImprovementsMember"
      decimals="-3"
      id="Fact_b38a1ccd9cd1467097af1c34073014e2"
      unitRef="U001">2872000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4fcebf33452f4a9193847ead62537e8c"
      unitRef="U001">19972000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_453df944655d4591961158962cd850df"
      unitRef="U001">18199000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20221231"
      decimals="-3"
      id="Fact_5a4c18ee0fba49f3bb92233f48b55f0a"
      unitRef="U001">17656000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="c20211231"
      decimals="-3"
      id="Fact_890509f3deab4395941a73d23144dcd4"
      unitRef="U001">16736000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"
      decimals="-3"
      id="Fact_3adefa19e4aa42a6a4b92b7b743f36a4"
      unitRef="U001">2316000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_FixedAssetsExcludingConstructionInProcessMember"
      decimals="-3"
      id="Fact_61816ea4a1154532859ec352b3ed5411"
      unitRef="U001">1463000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20221231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember"
      decimals="-3"
      id="Fact_063c533fdbd3481c9abbde0bcf835841"
      unitRef="U001">465000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="c20211231_PropertyPlantAndEquipmentByTypeAxis_ConstructionInProgressMember"
      decimals="-3"
      id="Fact_9fe76b85a8394ba99310f304f5e5e2c5"
      unitRef="U001">1221000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_47d108090eba4322a7fad9f37c71d7a2"
      unitRef="U001">2781000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_126c22fd6af74ee7be4e237f882f2c8d"
      unitRef="U001">2684000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_02dae1eef11e490ba4d04083cf52b1cc">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;5. Intangible assets, net&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&#160;&lt;/div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Purchased technology&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,591&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,349&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,591&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,195&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Patents&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(14&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,606&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,364&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,606&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,209&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Amortization expense was $155 thousand and $186 thousand in 2022 and 2021, respectively.&#160; Amortization expense for each of the next five years ending December 31 is expected to be as follows: $154 thousand in 2023 and $88 thousand in 2024; and none thereafter.&lt;/div&gt;
</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_2c9b6e33c54f441a8bdc5b9f421a3723">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Identifiable intangible assets are recorded in Intangible assets, net in the accompanying Consolidated Balance Sheets and are comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&#160;&lt;/div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross Amount&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Accumulated Amortization&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Purchased technology&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,591&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,349&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,591&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,195&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Patents&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(14&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,606&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,364&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,606&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,209&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_205d637ac90a4bf08ea67475cdedc19d"
      unitRef="U001">1591000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_134c0bbd9150420780c9593812f91516"
      unitRef="U001">1349000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_80a79724344941a3a42a9a108e9407f2"
      unitRef="U001">1591000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_TechnologyBasedIntangibleAssetsMember"
      decimals="-3"
      id="Fact_a61a8d9e9e2b45a39e6915a29fd0914e"
      unitRef="U001">1195000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_cee7f8382401471387dc092d24296eb5"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20221231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_e9e7fc77a55b416eb27f9394cf540d5c"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_15920dae0721462ba032c6765e17a180"
      unitRef="U001">15000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20211231_FiniteLivedIntangibleAssetsByMajorClassAxis_PatentsMember"
      decimals="-3"
      id="Fact_437c423210064c85abe6d9bf4d044393"
      unitRef="U001">14000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20221231"
      decimals="-3"
      id="Fact_44b685e163ce4c62960424e4a88c0199"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20221231"
      decimals="-3"
      id="Fact_6df3b55918774f08817b8d82d4d0ec3f"
      unitRef="U001">1364000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_86a119cff9ed488a820ce063f18bbf93"
      unitRef="U001">1606000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="c20211231"
      decimals="-3"
      id="Fact_de8bcb27841d49babee22cacfa40c920"
      unitRef="U001">1209000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_1f602044c8d34b98b228d55230ed472d"
      unitRef="U001">155000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b6653475fffb41a689f02f7222554aa5"
      unitRef="U001">186000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="c20221231"
      decimals="-3"
      id="Fact_70ba98556fff4df287f668538cb048bc"
      unitRef="U001">154000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="c20221231"
      decimals="-3"
      id="Fact_529f1ca6319145eeb12404682f8d47e1"
      unitRef="U001">88000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <tact:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree
      contextRef="c20221231"
      decimals="-3"
      id="Fact_060af1618d774feca8476ad0d8e261c8"
      unitRef="U001">0</tact:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_52ea3c87be4845ddb1334c5734862f42">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;6. Accrued liabilities&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of accrued liabilities are:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Salaries and compensation related&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,744&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,854&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;530&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;79&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Professional and consulting&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;371&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;285&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;432&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;676&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,077&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,894&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_c9185714c13c4cb4bddb0fa5041bbf3e">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of accrued liabilities are:&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Salaries and compensation related&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,744&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,854&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;530&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;79&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Professional and consulting&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;371&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;285&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;432&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;676&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,077&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,894&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_549e34ccf0e44129a7c95b510e244d02"
      unitRef="U001">2744000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_c202e56d9d0141f88c768ed54de0673b"
      unitRef="U001">2854000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_546b129c90a649ec89e28289ec03381d"
      unitRef="U001">530000</us-gaap:TaxesPayableCurrent>
    <us-gaap:TaxesPayableCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f486c24c06e4463388ac7c55d9faa266"
      unitRef="U001">79000</us-gaap:TaxesPayableCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_12004ed6fe5e4637bf4644308882412d"
      unitRef="U001">371000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3b35006ad4c44b84945aac3b32694d51"
      unitRef="U001">285000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_9debebb91b3343a09121fce4d589ccaa"
      unitRef="U001">432000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_0b60d9c9c5214c77832e8a7179e618ee"
      unitRef="U001">676000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20221231"
      decimals="-3"
      id="Fact_fd2bb6f7775e43bba19fb003f42bd82c"
      unitRef="U001">4077000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3dd0dbbc4302419ab04aa11c2a985be3"
      unitRef="U001">3894000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:CompensationAndEmployeeBenefitPlansTextBlock
      contextRef="c20220101to20221231"
      id="Text_4be85790c86e46c8a04f2516e69d3c63">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;7. Retirement savings plan&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We maintain a 401(k) plan under which all full-time employees are eligible to participate at the beginning of the month immediately following their date of hire.&#160; We match employees&#x2019; contributions at a rate of 50% of employees&#x2019; contributions up to the first 6% of the employees&#x2019; compensation contributed to the 401(k) plan.&#160; Our matching contributions were $355 thousand and $312 thousand in 2022 and 2021, respectively.&lt;/div&gt;
</us-gaap:CompensationAndEmployeeBenefitPlansTextBlock>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_d426313d7c3b4d59b74de28a937f33d9"
      unitRef="U006">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_df5ba21bf00e4e28a4a56e5cf567074c"
      unitRef="U006">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_04beed4c28f3402a82f3ded96b54eff3"
      unitRef="U001">355000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7f303b8eac4846f2aa74220a947ed066"
      unitRef="U001">312000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_a429fc8dfa4349bfb0627a1706bd73fa">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;8. Borrowings&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;Credit Facility&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On March 13, 2020, we entered into a credit facility (the &#x201c;Siena Credit Facility&#x201d;) with Siena Lending Group LLC (the &#x201c;Lender&#x201d;) and terminated our credit facility with TD Bank, N.A. The Siena Credit Facility provides for a revolving credit line of up to $10.0 million and was originally scheduled to expire on March 13, 2023. Borrowings under the Siena Credit Facility bear a floating rate of interest equal to the greatest of (i) the prime rate plus 1.75%, (ii) the federal funds rate plus 2.25%, and (iii) 6.50%. The total deferred financing costs related to expenses incurred to complete the Siena Credit Facility was $245 thousand, which were reported as &#x201c;Other current assets&#x201d; in current assets and &#x201c;Other assets&#x201d; in non-current assets in the Consolidated Balance Sheets. We also pay a fee of 0.50% on unused borrowings under the Siena Credit Facility. Borrowings under the Siena Credit Facility are secured by a lien on substantially all the assets of the Company.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The Siena Credit Facility imposes a financial covenant on the Company and borrowings are subject to a borrowing base based on (i) 85% of eligible accounts receivable plus the lesser of (a) $5.0 million and (b) 50% of eligible raw material and 60% of finished goods inventory and restricts, among other things, our ability to incur additional indebtedness and create other liens. The three-month period from April 1, 2020 to June 30, 2020 was the first period we were subject to the original financial covenant, which required the Company to maintain a minimum EBITDA and continued through the 12-month period from April 1, 2020 to March 31, 2021. On July 21, 2021, the Company entered into an amendment (&#x201c;Siena Credit Facility Amendment No. 1&#x201d;) to the Siena Credit Facility. Siena Credit Facility Amendment No. 1 changed the financial covenant under the Siena Credit Facility from a minimum EBITDA covenant to an excess availability covenant requiring that the Company maintain excess availability of at least $750 thousand under the Siena Credit Facility, tested as of the end of each calendar month, beginning with the calendar month ending July 31, 2021. From July 31, 2021 through December 31, 2022, we remained in compliance with our excess availability covenant. As of December 31, 2022, we had $2.3 million of outstanding borrowings under the Siena Credit Facility and $3.9 million of net borrowing capacity available under the Siena Credit Facility.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On July 19, 2022, the Company and the Lender entered into Amendment No. 2 (&#x201c;Siena Credit Facility Amendment No. 2&#x201d;) to the Siena Credit Facility, as amended by Siena Credit Facility Amendment No. 1. Also on July 19, 2022, the Company and the Lender entered into an Amended and Restated Fee Letter (the &#x201c;Amended Fee Letter&#x201d;) in connection with the Siena Credit Facility Amendment No. 2. The Siena Credit Facility Amendment No. 2 did not modify the aggregate amount of the revolving commitment or the interest rate applicable to the loans.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The changes to the Siena Credit Facility provided for in Siena Credit Facility Amendment No. 2 include, among other things, the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 36pt; vertical-align: top; text-align: right;"&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(i)&lt;/div&gt;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top;"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The extension of the maturity date from March 13, 2023 to March 13, 2025; and&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div&gt;
&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 36pt; vertical-align: top; text-align: right;"&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(ii)&lt;/div&gt;&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top;"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The termination of the existing blocked account control agreement and entry into a new &#x201c;springing&#x201d; deposit account control agreement, permitting the Company to direct the use of funds in its deposit account until such time as (a) the sum of excess availability under Siena Credit Facility (as amended) and unrestricted cash is less than $5 million for 3 consecutive business days or (b) an event of default occurs and is continuing.&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;div style="display:none;"&gt;&lt;br/&gt;&lt;/div&gt;
&lt;div style="text-align: justify; text-indent: -18pt; margin-left: 36pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;In addition, the Amended Fee Letter requires the Company, while it retains the ability to direct the use of funds in the deposit account, to maintain outstanding borrowings of at least $2,250,000 in principal amount. If the Company does not have the ability to direct the use of funds in the deposit account, then the Amended Fee Letter requires the Company to pay interest on at least $2,250,000 principal amount of loans, whether or not such amount of loans is actually outstanding.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic; font-weight: bold;"&gt;PPP Loan&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On May 1, 2020, the Company was granted the PPP Loan from Berkshire Bank in the aggregate amount of $2.2 million, pursuant to the PPP. Under the terms of the PPP, the PPP Loan would be forgiven to the extent that funds from the PPP Loan were used for payroll costs and costs to continue group health care benefits, as well as for interest on mortgage obligations incurred before February 15, 2020, rent under lease agreements in effect before February 15, 2020, utilities for which service began before February 15, 2020, and interest on debt obligations incurred before February 15, 2020, subject to conditions and limitations provided in the CARES Act. At least 60% (under the PPP terms, as amended) of the proceeds from the PPP Loan were required to be used for eligible payroll costs for the PPP Loan to be forgiven.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;On July 8, 2021, the Company received notifications from Berkshire Bank and the SBA that the PPP Loan (including all interest accrued thereon) of $2.2 million had been fully forgiven by the SBA and that the forgiveness payment date was July 1, 2021. The forgiveness of the PPP Loan was reported as &#x201c;Gain on forgiveness of long-term debt&#x201d; in the Consolidated Statement of Operations during the year ended December 31, 2021.&lt;/div&gt;
</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_69c32f11ffc94e60b5dd61a76da73f5d"
      unitRef="U001">10000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_PrimeRateMember"
      decimals="4"
      id="Fact_8273bd6913284f9b854e16fda8859114"
      unitRef="U006">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_VariableRateAxis_FederalFundsEffectiveSwapRateMember"
      decimals="4"
      id="Fact_31dee2f9a4d844c1950814bcf8caaaf8"
      unitRef="U006">0.0225</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_9ba6bfdcba6042ef895054265f2cd2dd"
      unitRef="U006">0.065</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DeferredFinanceCostsGross
      contextRef="c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-3"
      id="Fact_f3a35ed9f8e548478f170b5e00d30301"
      unitRef="U001">245000</us-gaap:DeferredFinanceCostsGross>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="4"
      id="Fact_51f7eac9f5084f80859b5019aefaee90"
      unitRef="U006">0.005</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_5087626053ee4feba32b74b8a5269376"
      unitRef="U006">0.85</tact:DebtInstrumentFinancialCovenantEligibleAccountsReceivable>
    <tact:DebtInstrumentFinancialCovenantEligibleInventory
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_a77bb2c458ad462bae84fb762df90ec6"
      unitRef="U001">5000000</tact:DebtInstrumentFinancialCovenantEligibleInventory>
    <tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_4df3aff4e0f441a687f508e5dbcb4fc7"
      unitRef="U006">0.50</tact:DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage>
    <tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="2"
      id="Fact_d500cc9522d544689a4d7a83bfdaa95b"
      unitRef="U006">0.60</tact:DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="c20210721_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember_RangeAxis_MinimumMember"
      decimals="-3"
      id="Fact_bb30c30fa03547c19f5d11889f53ce22"
      unitRef="U001">750000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:SecuredDebt
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_90bc990027f7454fb7b91bc6a5729392"
      unitRef="U001">2300000</us-gaap:SecuredDebt>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-5"
      id="Fact_b98c2cc23f6a4b67939317479b380862"
      unitRef="U001">3900000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <tact:DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="-6"
      id="Fact_d309fcaec48d4e6892a341e040e7374a"
      unitRef="U001">5000000</tact:DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash>
    <tact:DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash
      contextRef="c20220101to20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      id="Fact_b2c597c26c5d4c139894264a78106ff6">P3D</tact:DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash>
    <tact:DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="0"
      id="Fact_2a021cb230e64dffad390d690adb204f"
      unitRef="U001">2250000</tact:DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount>
    <tact:DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid
      contextRef="c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember"
      decimals="0"
      id="Fact_dbb5fc7857b34aa38ea3361758cc0117"
      unitRef="U001">2250000</tact:DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="c20200501_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember"
      decimals="-5"
      id="Fact_cd9718f9b40f4efb9c4f2a83f5861828"
      unitRef="U001">2200000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentDecreaseForgiveness
      contextRef="c20210701to20210701_DebtInstrumentAxis_PaycheckProtectionProgramLoanMember"
      decimals="-5"
      id="Fact_dfaa2f600cd04e639c00b864c95774de"
      unitRef="U001">2200000</us-gaap:DebtInstrumentDecreaseForgiveness>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="c20220101to20221231"
      id="Text_da76e37629e04642b6231ec47d5ba588">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;9. Stock incentive plans&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Stock incentive plans&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-style: italic;"&gt;.&lt;/span&gt;&#160; We currently have two stock incentive plans: the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan, which provide for awards to executives, key employees, directors and consultants.&#160; The plans generally provide for awards in the form of: (i) incentive stock options, (ii) non-qualified stock options, (iii) restricted stock, (iv) restricted stock units (which may include performance-based vesting), (v) stock appreciation rights or (vi) limited stock appreciation rights.&#160; Awards granted under these plans have exercise prices equal to 100% of the fair market value of the common stock at the date of grant.&#160; Awards granted have a ten-year term and generally vest over a two-year to four-year period, unless automatically accelerated for certain defined events.&#160; As of May 2014, no new awards may be made under the 2005 Equity Incentive Plan.&#160; Under our 2014 Equity Incentive Plan, as amended in May 2020, we are authorized to grant awards of up to 2,200,000 shares of TransAct common stock.&#160; At December 31, 2022, 347,652 shares of common stock remained available for issuance under the 2014 Equity Incentive Plan.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Under the assumptions indicated below, the weighted-average per share fair value of stock option grants for 2022 and 2021 was $4.39 and $5.41, respectively.&#160; We also issued restricted stock units for certain executives and directors that vest over a specified period of time, and in some instances require achieving certain performance metrics.&#160; The weighted-average per share fair value of these restricted stock units was $8.43 and $10.27 in 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2022 and 2021 and a discussion of our methodology for developing each of the assumptions used in the valuation model:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expected option term (in years)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expected volatility&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;51.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;50.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Risk-free interest rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Dividend yield&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Expected Option Term&lt;/span&gt; - This is the weighted average period of time over which the options granted are expected to remain outstanding giving consideration to our historical exercise patterns.&#160; Options granted have a maximum term of ten years and an increase in the expected term will increase compensation expense.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Expected Volatility&lt;/span&gt; &#x2013; The stock volatility for each grant is measured using the weighted average of historical daily price changes of our common stock over the most recent period approximately equal to the expected option term of the grant.&#160; An increase in the expected volatility factor will increase compensation expense.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Risk-Free Interest Rate&lt;/span&gt; - This is the U.S. Treasury rate in effect at the time of grant having a term approximately equal to the expected term of the option.&#160; An increase in the risk-free interest rate will increase compensation expense.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif; font-weight: bold; font-style: italic;"&gt;Dividend Yield&lt;/span&gt; &#x2013;The dividend yield is calculated by dividing the annual dividend declared per common share by the weighted average market value of our common stock on the date of grant. An increase in the dividend yield will decrease compensation expense.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;For both 2022 and 2021, we recorded $1.2 million of share-based compensation expense included primarily in general and administrative expense in our Consolidated Statements of Operations.&#160; We also recorded income tax benefits of $0.3 million in both 2022 and 2021, related to such share-based compensation.&#160; At December 31, 2022, these benefits are recorded as a deferred tax asset in the Consolidated Balance Sheets.&lt;/div&gt;

&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan is summarized below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restricted Stock Units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Number of Shares&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt; Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Number of Units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Outstanding at December 31, 2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,269,355&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.18&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;155,225&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Granted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;181,100&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;129,700&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.78&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Exercised&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(17,500&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6.70&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(47,931&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.22&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Forfeited&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(49,250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.38&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(22,708&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.27&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expired&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(27,750&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.51&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Outstanding at December 31, 2022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,355,955&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;214,286&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;**&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average grant stock price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2022:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity Awards Vested and Expected to Vest&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity Awards That Are Exercisable&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Awards&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Aggregate Intrinsic Value&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Awards&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Aggregate Intrinsic Value&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,355,955&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.08&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;224&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5.0&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;971,865&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.23&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;93&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 20%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restricted stock units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;145,687&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;921&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.1&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;**&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted-average contractual remaining term in years&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares that are issued upon exercise of employee stock awards are newly issued shares and not issued from treasury stock.&#160; As of December 31, 2022, unrecognized compensation cost related to non-vested equity awards granted under our stock incentive plans is approximately $2.1 million, which is expected to be recognized over a weighted average period of 2.6 years.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The total fair value of awards vested was $1.6 million and $1.7 million during the years ended December 31, 2022 and 2021, respectively.&#160; The total intrinsic value (which is the amount by which the stock price exceeded the exercise price on the date of exercise) of stock options exercised during the years ended December 31, 2022 and 2021 was $40 thousand and $268 thousand, respectively, and cash received from option exercises was &lt;span style="-sec-ix-hidden:Fact_b7a5dc04200f41ee9ee14fafb453e89a"&gt;zero&lt;/span&gt; and $436 thousand in 2022 and 2021, respectively.&#160; 17,500 and 97,000 stock options were exercised during the year ended December 31, 2022 and 2021, respectively.&#160; We recorded a realized tax provision in 2022 and 2021 from equity-based awards of $13 thousand and $35 thousand, respectively, related to options exercised.&lt;/div&gt;
</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans
      contextRef="c20220101to20221231"
      decimals="INF"
      id="Fact_74dce9cdc2ed40bc8e934cd85eb5a32e"
      unitRef="U007">2</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember"
      decimals="2"
      id="Fact_dbda0c3e1fca4110890bde30a77850f9"
      unitRef="U006">1</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember"
      id="Fact_99fc37877690409d840814720bf77e1e">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MinimumMember"
      id="Fact_40a19de455c54476a2dca9722da07673">P2Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_RangeAxis_MaximumMember"
      id="Fact_706529770f1c4f57afcdfd8495e92973">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_8688f53cd29b4a1ea5ced3d994506edc"
      unitRef="U002">2200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_919c41a1c2b9425990009567483a84f7"
      unitRef="U002">347652</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_f01a51aeaad2469293e4fe7341a5d670"
      unitRef="U003">4.39</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_c384a5b4ff8e480eaeacf0989c7558e7"
      unitRef="U003">5.41</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_ecb1820c3aef4b8b95697d02a8b0408d"
      unitRef="U003">8.43</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_a662e4000cf04b0dbdc80e8bf0e2f163"
      unitRef="U003">10.27</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_443bc1fe568e41aa8f39dc0d1190791a">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The table below indicates the key assumptions (on a weighted-average basis) used in the option valuation calculations for options granted in 2022 and 2021 and a discussion of our methodology for developing each of the assumptions used in the valuation model:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expected option term (in years)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expected volatility&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;51.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;50.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Risk-free interest rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Dividend yield&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_545b60ebe2cc436aad5fcfea15b6ce05">P7Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_b635e86829534f35a5b879a78de33e7f">P6Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_1b4a8fe76c184a109f9b4f41cf76a766"
      unitRef="U006">0.513</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_091065953f1a4c23b62ec0e7d72aa776"
      unitRef="U006">0.505</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_ac95c92ae8484bb6a4b889d2cef6a85c"
      unitRef="U006">0.022</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_13cc8eb37633470f8cba83b464fd2303"
      unitRef="U006">0.012</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_5accab64a0a14b369e4e79ced775baa0"
      unitRef="U006">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c20210101to20211231_PlanNameAxis_EquityIncentivePlan2014Member"
      decimals="3"
      id="Fact_558df1d67d924fcc9280dd5ab746e477"
      unitRef="U006">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2014Member"
      id="Fact_0f2e8836affa498daa4d3a06f1d9900d">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20220101to20221231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-5"
      id="Fact_f2499879cf5e4316a2c12297a392544d"
      unitRef="U001">1200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="c20210101to20211231_IncomeStatementLocationAxis_GeneralAndAdministrativeExpenseMember"
      decimals="-5"
      id="Fact_acd1781bb315430391ce86e07d1cfd22"
      unitRef="U001">1200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_d08b3822d77643a3972ed08ea4630613"
      unitRef="U001">300000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_7a21625d36c449849bfeab5d51e8d59e"
      unitRef="U001">300000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_629fd486a6bb45a4a9c5750f6f4cd8a8">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity award activity in the 2005 Equity Incentive Plan and the 2014 Equity Incentive Plan is summarized below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restricted Stock Units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Number of Shares&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt; Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Number of Units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Outstanding at December 31, 2021&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,269,355&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.18&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;155,225&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Granted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;181,100&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;129,700&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.78&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Exercised&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(17,500&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6.70&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(47,931&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.22&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Forfeited&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(49,250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.38&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(22,708&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10.27&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Expired&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(27,750&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8.51&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Outstanding at December 31, 2022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,355,955&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;214,286&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;**&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average grant stock price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_c652e92a72f8453eb19eec94e11452f2"
      unitRef="U002">1269355</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_d4d13609e6bd48d79e77aa0411834747"
      unitRef="U003">9.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_95b798178efa4ccba17c47cef220fa58"
      unitRef="U002">155225</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20211231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_fe6033ed1fa94d7992391e7c1f21fb28"
      unitRef="U003">10.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_0c1b6d715dc04e72995ee692a47afce6"
      unitRef="U002">181100</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_1a046905053745888916466b089b14b6"
      unitRef="U003">8.16</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_17bebaf8f17b43a39faac647206de7cf"
      unitRef="U002">129700</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_a6c042732c2c48afb323404407813393"
      unitRef="U003">8.78</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_78ebaab3eead4e90ae6c38c7c02807a7"
      unitRef="U002">17500</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_87b7ef37c79e4149b77eae5d38631de4"
      unitRef="U003">6.7</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_c17fd6ad4fe7484a9c003b8a070e25bf"
      unitRef="U002">47931</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_7188852d38b04de483263809d5a6e5d5"
      unitRef="U003">10.22</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_08525a4567ee4bb48530298a57be3d31"
      unitRef="U002">49250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_8e2cbb1bc4a8489883618e5b691d6a7c"
      unitRef="U003">9.38</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_23a5712d659c40f1ae2393b105970b1e"
      unitRef="U002">22708</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_61428b6b7da94fe39e2fe74edcaf3bc3"
      unitRef="U003">10.27</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_5afceb7d4727413992fe570c52f7dfa7"
      unitRef="U002">27750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_ebc9c40a649a4c66aec06f5d468342e7"
      unitRef="U003">8.51</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="INF"
      id="Fact_8ae03b0610e34051819c6192510de649"
      unitRef="U002">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations>
    <tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_7a344c6af5824c82bcf60226d39b1cc2"
      unitRef="U003">0</tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_1717748a362e4532ba44881c3931207b"
      unitRef="U002">1355955</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_97d1d830fa1a4992be9b569010ebcbbd"
      unitRef="U003">9.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_420802cca1c546ca8db4707da5e5ed8f"
      unitRef="U002">214286</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_e3949a5fc12045c3b5160a0af88db9e2"
      unitRef="U003">9.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_b4ce87dfa5d941c482369c20af06926f">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes information about equity awards outstanding that are vested and expect to vest and equity awards that are exercisable at December 31, 2022:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity Awards Vested and Expected to Vest&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity Awards That Are Exercisable&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Awards&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Aggregate Intrinsic Value&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Awards&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Average Price*&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Aggregate Intrinsic Value&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Remaining Term**&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 20%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock Options&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,355,955&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.08&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;224&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5.0&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;971,865&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9.23&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;93&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 20%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Restricted stock units&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;145,687&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;921&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.1&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 7%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;*&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted average exercise price per share&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;table cellpadding="0" cellspacing="0" class="DSPFListTable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; width: 100%; text-align: left; color: #000000;"&gt;
  &lt;tr&gt;
    &lt;td style="width: 18pt; vertical-align: top; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;**&lt;/td&gt;
    &lt;td style="width: auto; vertical-align: top; text-align: left;"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;weighted-average contractual remaining term in years&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_647128502a934eaa9f26202c13a4de97"
      unitRef="U002">1355955</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_76e5d30a0083430fb73cbadab39dd773"
      unitRef="U003">9.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_bc5f2f5569a64f649e60ed7fb510fa56"
      unitRef="U001">224000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_14d134c5fbe340148268d5dfe009ec06">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_f092f0455590467cb8eebecca5ce51d3"
      unitRef="U002">971865</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="2"
      id="Fact_df3938f8c7c24d37a5be348b6fd38137"
      unitRef="U003">9.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="c20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_cfb45ef7900346ca8776ce3d8576bb96"
      unitRef="U001">93000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_23b1a39ee72346a6a27a3554f4ad3103">P3Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_d1da7749f26c446aae261ec3d4944e5b"
      unitRef="U002">145687</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="c20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_6165e8fea0bf42e6bd40c15cef980e02"
      unitRef="U003">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="-3"
      id="Fact_26353ea2522f42dda462bae24e92ac10"
      unitRef="U001">921000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms
      contextRef="c20220101to20221231_AwardTypeAxis_RestrictedStockUnitsRSUMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      id="Fact_22fa15bb2b77457996465fc4e131d672">P2Y1M6D</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="c20221231"
      decimals="-5"
      id="Fact_fed46d4a17364915ba0339c5c02e9b4c"
      unitRef="U001">2100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="c20220101to20221231"
      id="Fact_9e09a91f0b804b84bf780ab57f49f9b8">P2Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_16a6777b7790402bb07d5c6f66b7a47d"
      unitRef="U001">1600000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_5c63642570674920ad6f39eadcdef0bc"
      unitRef="U001">1700000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_43c515e056fa48418884d7c2e9070d2e"
      unitRef="U001">40000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a6e6554b58864081830ef91af33aa13b"
      unitRef="U001">268000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_7acc678a27a64579b47690b1bdfeb517"
      unitRef="U001">436000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_c742c5bbbdfd476caee808c1b3e8efbd"
      unitRef="U002">17500</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="c20210101to20211231_AwardTypeAxis_EmployeeStockOptionMember_PlanNameAxis_EquityIncentivePlan2005AndEquityIncentivePlan2014Member"
      decimals="0"
      id="Fact_3916f3e867b142ae8c000a396c13a113"
      unitRef="U002">97000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_6ca289a61dc246e59d6159c5ebd67728"
      unitRef="U001">-13000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_413c3a8ed94841448a5a9fdb1398a046"
      unitRef="U001">-35000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_762da0a85f5b417aa5d8f3d477394e38">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;10. Income taxes&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of the income tax benefit are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Current:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;149&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;26&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;110&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;51&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(83&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;176&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;79&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,924&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,057&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(217&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(62&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,965&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,042&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Our effective tax rates were (&lt;/span&gt;24.9%&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;) and (&lt;/span&gt;33.6%&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;) for &lt;/span&gt;2022&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; and &lt;/span&gt;2021&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;, respectively.&#160; The tax benefit recorded for 2022 includes the recognition of stock option cancellations for which no benefit was realized and the benefit recorded for 2021 included the recognition of the gain on the forgiveness of the PPP Loan which was not taxable&lt;/span&gt;.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;At December 31, 2022, we have $10.9 million of federal net operating loss carryforwards (with an unlimited carryforward), $0.2 million of tax-effected state net operating loss carryforwards (which have varying lives), $1.2 million in R&amp;amp;D credit carryforwards (which generally have a twenty year life), and no state tax credit carryforwards.&#160; Foreign income (loss) before taxes was $24 thousand and ($404) thousand in 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our deferred tax assets and liabilities were comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,297&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;676&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;624&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;149&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Depreciation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Capitalized R&amp;amp;D expenses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,708&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventory reserves&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;648&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;41&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranty reserve&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;22&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock compensation expense&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;769&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;796&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other accrued compensation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;222&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;308&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;R&amp;amp;D credit carryforward&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,238&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;901&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other liabilities and reserves&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,228&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,919&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Valuation allowance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -18pt; margin-left: 45pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,572&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,186&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Depreciation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;196&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;49&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net deferred tax liabilities&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;245&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,327&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,143&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of December 31, 2022 and 2021, we had a $656 thousand and $733 thousand, respectively, of valuation allowances on our net operating loss carryforwards. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;659&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Subtractions released to income tax provisions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(77&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Additions charged to income tax provision&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;74&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal statutory rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;21.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;21.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;PPP loan forgiveness&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;R&amp;amp;D credit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock award excess tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State income taxes, net of federal income taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Business meals and entertainment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Miscellaneous permanent items&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Uncertain tax positions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock option cancellations&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Valuation allowance and tax accruals&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Effective tax rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;33.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We had $142 thousand and $144 thousand of total gross unrecognized tax benefits at December 31, 2022 and 2021, respectively that, if recognized, would favorably affect the effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Tax positions taken during the current period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;26&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;47&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lapse of statute of limitations&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;142&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We expect $28 thousand of the $142 thousand of unrecognized tax benefits will reverse in 2023 upon the expiration of the statute of limitations.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We recognize interest and penalties related to uncertain tax positions in the income tax provision.&#160; We have accrued interest and penalties related to uncertain tax positions of $34 thousand and $20 thousand as of December 31, 2022 and 2021, respectively.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We are subject to U.S. federal income tax as well as income tax of certain state and foreign jurisdictions.&#160; We have substantially concluded all U.S. federal income tax, state and local, and foreign tax matters through 2018.&#160; However, our federal tax returns for the years 2019 through 2022 remain open to examination. Various state and foreign tax jurisdiction tax years remain open to examination as well, though we believe that any additional assessment would be immaterial to the Consolidated Financial Statements.&lt;/div&gt;
</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_4c3ec231e79241219f4c528df41dbdac">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The components of the income tax benefit are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Current:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;149&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;26&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;110&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;51&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(83&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;176&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;79&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,924&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,057&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(217&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(62&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,965&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,042&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_2036a8e46f1641f9bf4c03b4508d6359"
      unitRef="U001">149000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_95d45f9296314278ae2ff005c24fd012"
      unitRef="U001">26000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_343fb1f8a6fe4a2b912ae016576248f6"
      unitRef="U001">110000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_5301c06c08e74a9cbd7689082bf4becc"
      unitRef="U001">51000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_4e81d74d439e4439ba7031a5e97d67ab"
      unitRef="U001">-83000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4c9125d6f49c48b597fa96153c4be0c5"
      unitRef="U001">2000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_d815ce00fe434a0cb6171c31a849e5d3"
      unitRef="U001">176000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_f0548f0a39174523b90374c7b408ad1c"
      unitRef="U001">79000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_a9ecf342f07b4b6bb4d501cdd1252d5a"
      unitRef="U001">-1924000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a2b884195254430bbdd574edb58cba2b"
      unitRef="U001">-2057000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_3a28d277ca5c43f7a7e7911d7347b7ac"
      unitRef="U001">-217000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_e43a42386ad444b586bd7e438a1813bb"
      unitRef="U001">-62000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_e828246ba6f34286baed84131ac3ecd0"
      unitRef="U001">0</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_9f9cc403ba51444a8669807be5012d47"
      unitRef="U001">-2000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_bedb0f2f8e1f49cc97a9b70b50c09925"
      unitRef="U001">-2141000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_4bfc5e34f8914050aae79191e657746c"
      unitRef="U001">-2121000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_93d8e46c25bc4d899e560d353260ff8c"
      unitRef="U001">-1965000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_124d14cce1d44e26a1b35a1e78b8bb6c"
      unitRef="U001">-2042000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_57b06b22d4d546609cb005f1a965b20f"
      unitRef="U006">0.249</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_62d05f7a0e714c5096c94d35261dc352"
      unitRef="U006">0.336</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <tact:OperatingLossCarryforwardsNotSubjectToExpiration
      contextRef="c20221231_IncomeTaxAuthorityAxis_DomesticCountryMember"
      decimals="-5"
      id="Fact_a707eaa85bb146d1be6cd57118e89b54"
      unitRef="U001">10900000</tact:OperatingLossCarryforwardsNotSubjectToExpiration>
    <tact:OperatingLossCarryforwardsSubjectToExpiration
      contextRef="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-5"
      id="Fact_0e753c6712f74bd2a5f43d6be5b48eda"
      unitRef="U001">200000</tact:OperatingLossCarryforwardsSubjectToExpiration>
    <tact:TaxCreditCarryforwardAmountSubjectToExpiration
      contextRef="c20221231_TaxCreditCarryforwardAxis_ResearchMember"
      decimals="-5"
      id="Fact_4d7bc87d81ef46068f78f2b336d39a55"
      unitRef="U001">1200000</tact:TaxCreditCarryforwardAmountSubjectToExpiration>
    <tact:TaxCreditCarryforwardExpirationPeriod
      contextRef="c20220101to20221231_TaxCreditCarryforwardAxis_ResearchMember"
      id="Fact_c7497ce27c28450981598df5988dea26">P20Y</tact:TaxCreditCarryforwardExpirationPeriod>
    <tact:TaxCreditCarryforwardAmountSubjectToExpiration
      contextRef="c20221231_IncomeTaxAuthorityAxis_StateAndLocalJurisdictionMember"
      decimals="-6"
      id="Fact_62ff675ce3f94013affbc60539306fae"
      unitRef="U001">0</tact:TaxCreditCarryforwardAmountSubjectToExpiration>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_605936305474420e830611155db1d333"
      unitRef="U001">24000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2e854583b76a45d0b15a69c9dd6db44f"
      unitRef="U001">-404000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_623cf2a1daa64270a86c67eb451df3ce">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred income taxes arise from temporary differences between the tax basis of assets and liabilities and their reported amounts in the Consolidated Financial Statements.&#160; Our deferred tax assets and liabilities were comprised of the following:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax assets:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,297&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Foreign net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;676&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;624&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State net operating losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;149&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Depreciation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Capitalized R&amp;amp;D expenses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,708&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventory reserves&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;648&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred revenue&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;41&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Warranty reserve&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;22&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock compensation expense&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;769&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;796&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other accrued compensation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;222&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;308&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;R&amp;amp;D credit carryforward&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,238&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;901&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other liabilities and reserves&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,228&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,919&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 27pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Valuation allowance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -18pt; margin-left: 45pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,572&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,186&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax liabilities:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Depreciation&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;196&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;49&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 36pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net deferred tax liabilities&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;245&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total net deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,327&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,143&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20221231"
      decimals="-3"
      id="Fact_16abadb0f1294b1f970a723503c7a6a2"
      unitRef="U001">2297000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2665fc0b1ee44dd5b1d39a3fe0f24fa8"
      unitRef="U001">1978000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20221231"
      decimals="-3"
      id="Fact_88edf2c61b3546b59016c35a82b1501c"
      unitRef="U001">676000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign
      contextRef="c20211231"
      decimals="-3"
      id="Fact_85d3d7c498404f8e8bedaf5cca7cb113"
      unitRef="U001">624000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="c20221231"
      decimals="-3"
      id="Fact_c32ccc0742c243068c9047c74299d6de"
      unitRef="U001">149000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ba7e9d8a495741279dda3294061e6cca"
      unitRef="U001">0</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e8ba781de59a4fe7afff21db820e3381"
      unitRef="U001">0</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements
      contextRef="c20211231"
      decimals="-3"
      id="Fact_bb053245ae684b0495d400c40bd1d346"
      unitRef="U001">306000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="c20221231"
      decimals="-3"
      id="Fact_7705c60123fc49c9aa91a1d2787d7859"
      unitRef="U001">1708000</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7c2983613c2946be9d14500f9cfdc3e2"
      unitRef="U001">0</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="c20221231"
      decimals="-3"
      id="Fact_2bfcfd9994e14c7fa32858ce3baddcfc"
      unitRef="U001">648000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ff57506b7c0f4029938ac6d7786dd363"
      unitRef="U001">710000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e152ed207a1c4f7a8f8f8e6ed6d12294"
      unitRef="U001">41000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsDeferredIncome
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f9242765b4ee40d5a940c0a757c18cc6"
      unitRef="U001">24000</us-gaap:DeferredTaxAssetsDeferredIncome>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="c20221231"
      decimals="-3"
      id="Fact_247a2ce379e14881b2a9efa0751caa24"
      unitRef="U001">17000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="c20211231"
      decimals="-3"
      id="Fact_ee9eabcb6cbf45b78e9566121d1c0fe3"
      unitRef="U001">22000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20221231"
      decimals="-3"
      id="Fact_3a1365cd768a4dc58913edb95ef73754"
      unitRef="U001">769000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="c20211231"
      decimals="-3"
      id="Fact_75baf266d4534252a6afb1753feac6c3"
      unitRef="U001">796000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
      contextRef="c20221231"
      decimals="-3"
      id="Fact_39ae37214c1d450cb695314f03d5928d"
      unitRef="U001">222000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e9c68087807548c09097b7e7d679acf2"
      unitRef="U001">308000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20221231"
      decimals="-3"
      id="Fact_faeb8041d5254e48ab65f9e32b5a0211"
      unitRef="U001">1238000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="c20211231"
      decimals="-3"
      id="Fact_81645de356c349f1ad532baa92f3ca08"
      unitRef="U001">901000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="c20221231"
      decimals="-3"
      id="Fact_022d50737d954193bdfa4b8e8c600692"
      unitRef="U001">463000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="c20211231"
      decimals="-3"
      id="Fact_2577dd2af1874f899b7e0bfac9859902"
      unitRef="U001">250000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20221231"
      decimals="-3"
      id="Fact_5a6568a0e93f467c864f10fec24ed765"
      unitRef="U001">8228000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="c20211231"
      decimals="-3"
      id="Fact_7be2df3a19af4237bf919019f5642693"
      unitRef="U001">5919000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20221231"
      decimals="-3"
      id="Fact_e2ec8936c16c4b49bd405fbc676f9344"
      unitRef="U001">656000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a6aff7d63894481f8b78b958c90d499e"
      unitRef="U001">733000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_6ba1b36eaefc48f8bace56895ae8547a"
      unitRef="U001">7572000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_855ebcc7b9a6467ba707ee932a179246"
      unitRef="U001">5186000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="c20221231"
      decimals="-3"
      id="Fact_32d764e455954ae3bfb3b5fda1eab3e7"
      unitRef="U001">196000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="c20211231"
      decimals="-3"
      id="Fact_a5e60e7381cf4f25b8327cd69dd1db86"
      unitRef="U001">0</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="c20221231"
      decimals="-3"
      id="Fact_bd1cff22b6d843a59ae370875afe1fea"
      unitRef="U001">49000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilitiesOther
      contextRef="c20211231"
      decimals="-3"
      id="Fact_9f19197ee4e14b29a215f0d5660e91bf"
      unitRef="U001">43000</us-gaap:DeferredTaxLiabilitiesOther>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4733597541114f6eb29d30185eeb3ff9"
      unitRef="U001">245000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="c20211231"
      decimals="-3"
      id="Fact_616e903768d84fe598463cb6bfb7458c"
      unitRef="U001">43000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_dfd25beab9a44c60bbfdc2bd812172cb"
      unitRef="U001">7327000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_fa6876a2da5c48be8d63e29e2a4f18f8"
      unitRef="U001">5143000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:SummaryOfValuationAllowanceTextBlock
      contextRef="c20220101to20221231"
      id="Text_ee4413c3e26a485394a68ad2b5355c39">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;As of December 31, 2022 and 2021, we had a $656 thousand and $733 thousand, respectively, of valuation allowances on our net operating loss carryforwards. The following table summarizes the activity recorded in the valuation allowance on the deferred tax assets:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;659&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Subtractions released to income tax provisions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(77&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Additions charged to income tax provision&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;74&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;656&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;733&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:SummaryOfValuationAllowanceTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_b698a9eae4d640b2811fb11fcb57880d"
      unitRef="U001">656000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_cb1ece06fea14baab39de0c2f4f9a942"
      unitRef="U001">733000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_2c731a8b0e1a4057b9fe7b43cd15b109"
      unitRef="U001">733000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20201231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_036f80bb3b174ae499821278a6e38567"
      unitRef="U001">659000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_2bfde95821774d31b409505b2861c3e2"
      unitRef="U001">77000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_aa0f9a2c29734c8880dddb33a7fb7e2d"
      unitRef="U001">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20220101to20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_c96fd23149cf46319efd464890de4128"
      unitRef="U001">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="c20210101to20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_d67b60b7dbb64a9b878377244825c887"
      unitRef="U001">74000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20221231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_9c0aedd2d3664800a8c014d899750c65"
      unitRef="U001">656000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember"
      decimals="-3"
      id="Fact_2ba5c171516b4adf95e9fddbc07a7b38"
      unitRef="U001">733000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_94a3f824a5244ad89375b1904485abe4">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Differences between the U.S. statutory federal income tax rate and our effective income tax rate are analyzed below:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Year Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Federal statutory rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;21.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;21.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;PPP loan forgiveness&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;R&amp;amp;D credit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock award excess tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;State income taxes, net of federal income taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Business meals and entertainment&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Miscellaneous permanent items&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Uncertain tax positions&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Stock option cancellations&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Valuation allowance and tax accruals&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Other&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Effective tax rate&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;33.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_c27e506ae06942bb95196c2c8c14b392"
      unitRef="U006">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_6e2af26e262f4572a8999cde37e5fa14"
      unitRef="U006">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_7141c265b88d4eaeac3e68f78d93e52c"
      unitRef="U006">0</tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent>
    <tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_3d92d8eac6b6463f88fb2d2ae3c24efd"
      unitRef="U006">0.074</tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_19ea7b4850e647099ae747871aae435a"
      unitRef="U006">0.043</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_c803cb11605d488cbd3e6622135cbf2c"
      unitRef="U006">0.071</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_eb14041d07a44a7585d65934eea9b575"
      unitRef="U006">0</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_fcdc86f6b9a6421585c6b88d7131e4b5"
      unitRef="U006">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_a1b56b24f7ac413d8efd918c7374abfa"
      unitRef="U006">0.011</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_8b7a9cdb19944dbbb184104ef7d170a8"
      unitRef="U006">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_f3a5746ab2884c2fbf757350fd270b05"
      unitRef="U006">0</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_c90bcdc833b149ed8f3528b38359bac9"
      unitRef="U006">-0.002</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
    <tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_a66755d6a1b0418b927224dcef6623e4"
      unitRef="U006">0</tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent>
    <tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_8a32512fa1c744f48d5d73ccfa443c73"
      unitRef="U006">-0.003</tact:EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_f469efda0e24483f8fa92a6bee22ccd3"
      unitRef="U006">-0.005</us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_c9ce221ac254455487bc7e5a9ded14f4"
      unitRef="U006">-0.004</us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_6c77acda8bc141469f668bfe23cbfadf"
      unitRef="U006">-0.019</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_92d9346dd44541fb987438c72b1d5055"
      unitRef="U006">-0.006</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_0453051172604d8c97e0f439b252fd8c"
      unitRef="U006">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_942fcbe107534c819b596d8fe735d8dd"
      unitRef="U006">-0.012</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_e5bdc576026e40c59d9d25184d2299f2"
      unitRef="U006">-0.001</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_ad7a4911863b436988b634ee3482faf3"
      unitRef="U006">0.004</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20220101to20221231"
      decimals="3"
      id="Fact_fabf5bb12ee245b2adfdb62b7c1600de"
      unitRef="U006">0.249</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="c20210101to20211231"
      decimals="3"
      id="Fact_9c4434b375cf47ebbd14d1e0ba61ff6a"
      unitRef="U006">0.336</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock
      contextRef="c20220101to20221231"
      id="Text_716c1805467e49bea464193a16518b0f">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We had $142 thousand and $144 thousand of total gross unrecognized tax benefits at December 31, 2022 and 2021, respectively that, if recognized, would favorably affect the effective income tax rate in any future periods.&#160; We are not aware of any events that could occur within the next twelve months that could cause a significant change in the total amount of unrecognized tax benefits.&#160; A tabular reconciliation of the gross amounts of unrecognized tax benefits at the beginning and end of the year is as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Tax positions taken during the current period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;26&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;47&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Lapse of statute of limitations&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(28&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Balance, end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;142&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;144&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="c20221231"
      decimals="-3"
      id="Fact_0f7e36bc85a54ec69f3d1e18b87d2dc4"
      unitRef="U001">142000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="c20211231"
      decimals="-3"
      id="Fact_56c5ed7316f34096b1e4c95909467f51"
      unitRef="U001">144000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20211231"
      decimals="-3"
      id="Fact_8f2b1b5c1eb94a1b97401ff3a48187d5"
      unitRef="U001">144000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20201231"
      decimals="-3"
      id="Fact_604526f3b95f43f2b4e9be9940533b33"
      unitRef="U001">121000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_05627d71a55c4e0f8c31182fca9ac23f"
      unitRef="U001">26000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
    <us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_fda2dcbab2794f7a89da9b85ef286af4"
      unitRef="U001">47000</us-gaap:UnrecognizedTaxBenefitsPeriodIncreaseDecrease>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_f525411033a440ceb278f80895b16c7f"
      unitRef="U001">28000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_acff6ec42fc24dc88ec2ecd84b5a3463"
      unitRef="U001">24000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20221231"
      decimals="-3"
      id="Fact_b127f9cda46d4561828782178ea3a790"
      unitRef="U001">142000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="c20211231"
      decimals="-3"
      id="Fact_4537ed9a74904e2eb9cefa2ad6534a20"
      unitRef="U001">144000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible
      contextRef="c20221231"
      decimals="-3"
      id="Fact_74feac78af694c46a668bf67bc3fc4c2"
      unitRef="U001">28000</us-gaap:DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="c20221231"
      decimals="-3"
      id="Fact_45e663fdd09f4c6a9ef5980105e5599e"
      unitRef="U001">142000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued
      contextRef="c20221231"
      decimals="-3"
      id="Fact_abbd5a6b117b442daeef52f308bf7e23"
      unitRef="U001">34000</us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued>
    <us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued
      contextRef="c20211231"
      decimals="-3"
      id="Fact_d4deaf4cef524ef4a3a500b87470bad7"
      unitRef="U001">20000</us-gaap:IncomeTaxExaminationPenaltiesAndInterestAccrued>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="c20220101to20221231"
      id="Text_e8296c5992864d07bfb0bb75feff0aeb">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;11. Earnings per share&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Earnings per share was computed as follows (in thousands, except per share amounts):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(5,936&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic:&#160; Weighted average common shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,905&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted:&#160; Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,905&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.60&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.60&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, restricted stock units and performance stock awards, when the average market price of the common stock is lower than the exercise price of the related stock award during the period.&#160; These outstanding stock awards are not included in the computation of diluted earnings per share because the effect would be anti-dilutive.&#160; Furthermore, in periods when a net loss is reported, such as 2022 and 2021, basic and diluted net loss per common share are calculated using the same method.&#160; Anti-dilutive stock awards excluded from the computation of earnings per dilutive share were 1,463,000 and 391,000 at December 31, 2022 and 2021, respectively.&lt;/div&gt;
</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_9c1248e04f7c415cad93855f7da486ad">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Earnings per share was computed as follows (in thousands, except per share amounts):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(5,936&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic:&#160; Weighted average common shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,905&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Add:&#160; Dilutive effect of outstanding equity awards as determined by the treasury stock method&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&#x2013;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted:&#160; Weighted average common and common equivalent shares outstanding&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,905&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.60&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; text-indent: -9pt; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.60&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_b1cfb37121fd40bdaf3e26a10ce21675"
      unitRef="U001">-5936000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_81cf0afa10a946aca6e44d7a84cd9c11"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_154aa0b8975248c290ef4c3d1a75e0c7"
      unitRef="U002">9905000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_367018237bb14b93b3e3f1febb01d66f"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_0c315bd2a5554a959f4902d78a33558f"
      unitRef="U002">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_dda2d87fa2414f6dabb2ac336ec1bbdf"
      unitRef="U002">0</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_787dd2d6df0c4c4bbfd01980f5641676"
      unitRef="U002">9905000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_a9e7575f75ca45379d06482ce02c62b5"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_53940854cf194701bafd82f668ab692b"
      unitRef="U003">-0.6</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_10aaee96312c4982904e39e8d613482b"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20220101to20221231"
      decimals="2"
      id="Fact_d9dfd61fa13b4eb4b5517fb65b141792"
      unitRef="U003">-0.6</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_882e8c06cbdf45cda4ede34d1c4af1c1"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20220101to20221231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember"
      decimals="-3"
      id="Fact_36a7b7cf70164715ade9fa5be202548a"
      unitRef="U002">1463000000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c20210101to20211231_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_StockCompensationPlanMember"
      decimals="-3"
      id="Fact_75e37052e7f64823962fddd2a77cf6a5"
      unitRef="U002">391000000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:TreasuryStockTextBlock
      contextRef="c20220101to20221231"
      id="Text_afa424e1d2f745359b3dc0cccf9a8c42">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;12. Stock repurchase program&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;We use the cost method to account for treasury stock purchases, under which the price paid for the stock is charged to the treasury stock account.&#160; Repurchases of our common stock are accounted for as of the settlement date.&#160; During 2022 and 2021, we did not repurchase any shares of our common stock.&#160; From January 1, 2005 through December 31, 2019, we repurchased a total of 4,044,842 shares of common stock for $32.1 million, at an average price of $7.94 per share.&lt;/div&gt;
</us-gaap:TreasuryStockTextBlock>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20220101to20221231"
      decimals="INF"
      id="Fact_12b02c1a237046b2932fd4f87c05738d"
      unitRef="U002">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20210101to20211231"
      decimals="INF"
      id="Fact_ed7a3c87de004551be8ac3e9c91f44db"
      unitRef="U002">0</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c20050101to20191231"
      decimals="0"
      id="Fact_e349c2bf019a458daa7e361cab3f0ac4"
      unitRef="U002">4044842</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="c20050101to20191231"
      decimals="-5"
      id="Fact_9c01741e0f5449f89cb7a9ae545dda2f"
      unitRef="U001">32100000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="c20050101to20191231"
      decimals="2"
      id="Fact_03bc2553e1e8434389436978b6ba5d90"
      unitRef="U003">7.94</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="c20220101to20221231"
      id="Text_939bef70c0d64540892a844d8725a94a">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;13. Geographic area information&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the location of the customer and asset.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;44,034&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;32,400&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;14,105&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,986&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;58,139&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,386&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Fixed assets, net:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,252&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,770&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;529&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;914&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,781&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,684&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Sales to international customers were 24% and 18% of total sales in 2022 and 2021, respectively.&#160; Sales to Europe represented 68% and 53%, sales to the Pacific Rim (which includes Australia and Asia) represented 28% and 35%, and sales to Canada represented 4% and 11%&#160; of total international sales in 2022 and 2021, respectively.&#160; International long-lived assets consist of net fixed assets located at our foreign subsidiary in the UK, as well as our contract manufacturer in Thailand.&lt;/div&gt;
</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_13905b88d7334f81897864d4c40bab37">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Information regarding our operations by geographic area is contained in the following table.&#160; These amounts in the geographic area table are based on the location of the customer and asset.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;44,034&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;32,400&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;14,105&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,986&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;58,139&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,386&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Fixed assets, net:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;United States&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,252&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,770&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;International&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;529&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;914&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; padding-bottom: 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,781&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,684&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_7553ae93ee5d47f48aaf4a099542106d"
      unitRef="U001">44034000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_55faef3f6056433d82c722cb09ab7835"
      unitRef="U001">32400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_57da01f0d9e8421ba044190bdc775c03"
      unitRef="U001">14105000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_b0e1f385ea8a4a9f8a2e310202226624"
      unitRef="U001">6986000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_ab7e66a3a62649f68acac2f44331fa9c"
      unitRef="U001">58139000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_905690516b5f4bc4b27f29ae10df172f"
      unitRef="U001">39386000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_478770630e284ed48df2c90dc3085778"
      unitRef="U001">2252000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_US"
      decimals="-3"
      id="Fact_8bafe332c2ae430594e3343bdeeea577"
      unitRef="U001">1770000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_ed0ed41f16b442bd8876780450e0def4"
      unitRef="U001">529000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231_ConsolidationItemsAxis_ReportableGeographicalComponentsMember_StatementGeographicalAxis_InternationalMember"
      decimals="-3"
      id="Fact_3e0f2352cd124ca49a847ef398306d06"
      unitRef="U001">914000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20221231"
      decimals="-3"
      id="Fact_77ea1ae7ca5f48978711e1054b0b87a2"
      unitRef="U001">2781000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_f5d8d252104f4341842a27d77534cc61"
      unitRef="U001">2684000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"
      decimals="2"
      id="Fact_5f9b1d9c39cf46c092774c574a06dfee"
      unitRef="U006">0.24</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember"
      decimals="2"
      id="Fact_0710ab96b76245c59e316c284b4a3d54"
      unitRef="U006">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"
      decimals="2"
      id="Fact_7dd6f51cd832440d82db61314a680a58"
      unitRef="U006">0.68</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_EuropeMember"
      decimals="2"
      id="Fact_7901c79b8c98406c9ee9aedec2729c80"
      unitRef="U006">0.53</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"
      decimals="2"
      id="Fact_e3834217e41f4765a919291972bfee85"
      unitRef="U006">0.28</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_PacificRimMember"
      decimals="2"
      id="Fact_fa35db1c777e46d2a2ec6437833784de"
      unitRef="U006">0.35</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"
      decimals="2"
      id="Fact_945b2a15fee54ed482983d80b75c92bb"
      unitRef="U006">0.04</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c20210101to20211231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_CA"
      decimals="2"
      id="Fact_0119130565e64697a56b8adf55007343"
      unitRef="U006">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="c20220101to20221231"
      id="Text_5a7dc2c2b1cb4061a483a480c2de1e99">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;14. Leases&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Operating lease expense was $&lt;/span&gt;1.0&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; million for both years ended December 31, &lt;/span&gt;2022&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; and &lt;/span&gt;2021&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; and is reported as &lt;/span&gt;&#x201c;Cost of sales,&#x201d; &#x201c;Engineering, design and product development expense,&#x201d; &#x201c;Selling and marketing expense,&#x201d; and &#x201c;General and administrative expense&#x201d; in the Consolidated Statements of Operations.&#160; &lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt;Operating costs include short-term lease costs, which were immaterial during the period.&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating cash outflows from leases&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;967&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;982&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.5&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.5&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.4&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 12pt;"&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The maturity of the Company&#x2019;s operating lease liabilities are as follows (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31, 2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;972&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2024&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2025&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2026&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;20&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,724&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;166&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,558&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="c20210101to20211231"
      decimals="-5"
      id="Fact_b48dcdc0c53045f3b0c0d1ce099f7a26"
      unitRef="U001">1000000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="c20220101to20221231"
      decimals="-5"
      id="Fact_a3b5f98bc29246139a3f0a4cd78e2cbf"
      unitRef="U001">1000000</us-gaap:OperatingLeaseExpense>
    <tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_4eab533f0844421ebd1a6dd3b33f2c58">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following information represents supplemental disclosure for the statement of cash flows related to operating leases (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating cash outflows from leases&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;967&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;982&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock>
    <us-gaap:OperatingLeasePayments
      contextRef="c20220101to20221231"
      decimals="-3"
      id="Fact_e752242cfff949568cc4847f13d1339c"
      unitRef="U001">967000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_3c1e12d3b44f468cbd677fd06466d5f0"
      unitRef="U001">982000</us-gaap:OperatingLeasePayments>
    <tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_5468d94eba274b49957e07039b061b03">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The following summarizes additional information related to our leases:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="6" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average remaining lease term (in years)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2.7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3.5&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 76%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Weighted average discount rate&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.5&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4.4&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;%&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</tact:LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20221231"
      id="Fact_bd30c1b5c1e942d0a0bd5b4e9e78da1e">P2Y8M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="c20211231"
      id="Fact_92027abc199e40848667bf7c8932b396">P3Y6M</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20221231"
      decimals="3"
      id="Fact_ee9ce2bc31de4bfc84b8ee05655a8e37"
      unitRef="U006">0.045</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="c20211231"
      decimals="3"
      id="Fact_8898c0b50c7e4146aaeb41625f7bf0f4"
      unitRef="U006">0.044</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_5506cde2ef1549d78d0c07d838263a31">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The maturity of the Company&#x2019;s operating lease liabilities are as follows (in thousands):&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31, 2022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2023&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;972&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2024&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;1,022&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2025&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;710&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2026&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;20&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total undiscounted lease payments&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,724&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Less imputed interest&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;166&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 88%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Total lease liabilities&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; border-bottom: #000000 double 4px; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,558&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; padding-bottom: 4px; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="c20221231"
      decimals="-3"
      id="Fact_495f3682c8974f86a6f3171c369c552e"
      unitRef="U001">972000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="c20221231"
      decimals="-3"
      id="Fact_282b95cbac84471aa9e3396cc887d136"
      unitRef="U001">1022000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="c20221231"
      decimals="-3"
      id="Fact_04b45ea3f97c4124b4accfa66bda1114"
      unitRef="U001">710000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="c20221231"
      decimals="-3"
      id="Fact_f216597341d94a9b816fc02d601d6476"
      unitRef="U001">20000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="c20221231"
      decimals="-3"
      id="Fact_4c600375184f4181b48f70881f7c7f7d"
      unitRef="U001">2724000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="c20221231"
      decimals="-3"
      id="Fact_037059865d4f410c8a2ec51451d8fe24"
      unitRef="U001">166000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="c20221231"
      decimals="-3"
      id="Fact_6e7229ebd5a44d0f8813425376c2435d"
      unitRef="U001">2558000</us-gaap:OperatingLeaseLiability>
    <us-gaap:QuarterlyFinancialInformationTextBlock
      contextRef="c20220101to20221231"
      id="Text_e58080c8e8e74a9f8fdb44ee77736a6a">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;15. Quarterly results of operations (unaudited)&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Our quarterly results of operations for 2022 and 2021 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Quarter Ended&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share amounts)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;March 31&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;June 30&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;September 30&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,702&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,623&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,856&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,958&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,434&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,193&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,348&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,376&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;528&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;260&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.44&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.05&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.03&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.44&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.05&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.03&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,301&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,637&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,123&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,339&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,432&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,305&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,089&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,030&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;901&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.09&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:QuarterlyFinancialInformationTextBlock>
    <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock
      contextRef="c20220101to20221231"
      id="Text_955f2bb3e42647958280ecce3bf167e6">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Our quarterly results of operations for 2022 and 2021 are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="14" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Quarter Ended&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-style: italic;"&gt;(In thousands, except per share amounts)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;March 31&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;June 30&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;September 30&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;December 31&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2022:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,702&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;12,623&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,856&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;17,958&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,434&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,193&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,219&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,348&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,376&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;528&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;260&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.44&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.05&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.03&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.44&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.05&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.03&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2021:&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;8,301&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;10,637&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;11,123&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,339&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,432&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,305&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,089&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,030&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;901&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 9pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net (loss) income per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.10&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 52%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.09&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220101to20220331"
      decimals="-3"
      id="Fact_d9d51efa37054e0b959b712c9ae69697"
      unitRef="U001">9702000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220401to20220630"
      decimals="-3"
      id="Fact_31bb5203c2ad47c6babfd007247ebc3b"
      unitRef="U001">12623000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20220701to20220930"
      decimals="-3"
      id="Fact_e4c36fe81b854962abb6fdffe147eb2e"
      unitRef="U001">17856000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20221001to20221231"
      decimals="-3"
      id="Fact_eae6a0d26e474d6c82b49d12caa9698f"
      unitRef="U001">17958000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="c20220101to20220331"
      decimals="-3"
      id="Fact_a6c13e7c147d459f933dc7900dfebcfc"
      unitRef="U001">2566000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20220401to20220630"
      decimals="-3"
      id="Fact_01308e43f2cc4982aa40a1ddea5b5b47"
      unitRef="U001">5434000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20220701to20220930"
      decimals="-3"
      id="Fact_8826eb2dd0124916a64b89f29d9a7aff"
      unitRef="U001">8193000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20221001to20221231"
      decimals="-3"
      id="Fact_e204b7d5eadd4e08a3ac75a490471caa"
      unitRef="U001">8219000</us-gaap:GrossProfit>
    <us-gaap:NetIncomeLoss
      contextRef="c20220101to20220331"
      decimals="-3"
      id="Fact_1df4b078161f4fc88bbc803b0f155a02"
      unitRef="U001">-4348000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220401to20220630"
      decimals="-3"
      id="Fact_7e1a9b89aa1a4897aaa114d6af475e27"
      unitRef="U001">-2376000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20220701to20220930"
      decimals="-3"
      id="Fact_71d504d5dfc84404b78b1acb40cc7c92"
      unitRef="U001">528000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20221001to20221231"
      decimals="-3"
      id="Fact_97a1cbbbabbb47e087fd427a30d20d72"
      unitRef="U001">260000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20220101to20220331"
      decimals="2"
      id="Fact_7359155b42764e3f9efc364133291fd4"
      unitRef="U003">-0.44</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20220401to20220630"
      decimals="2"
      id="Fact_d10290be01cb4e6681c78e7d6413baeb"
      unitRef="U003">-0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20220701to20220930"
      decimals="2"
      id="Fact_2c683af48b334ded995c4e099310dedb"
      unitRef="U003">0.05</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20221001to20221231"
      decimals="2"
      id="Fact_ef949dc73f2a490b81358b5357ae76d8"
      unitRef="U003">0.03</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20220101to20220331"
      decimals="2"
      id="Fact_10c558314f864c60998ac3078a380470"
      unitRef="U003">-0.44</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20220401to20220630"
      decimals="2"
      id="Fact_c4a235aad3814da9b16129d80a96768d"
      unitRef="U003">-0.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20220701to20220930"
      decimals="2"
      id="Fact_0683a8dcbc1344c88af45ec1381d85cd"
      unitRef="U003">0.05</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20221001to20221231"
      decimals="2"
      id="Fact_77bfa42f9ccc4a14a26157baf5b6a4e9"
      unitRef="U003">0.03</us-gaap:EarningsPerShareDiluted>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210101to20210331"
      decimals="-3"
      id="Fact_afcce32e616c41928f462a0205483c46"
      unitRef="U001">8301000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210401to20210630"
      decimals="-3"
      id="Fact_ec07c5707b2247bd849468effc0d45fb"
      unitRef="U001">9325000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20210701to20210930"
      decimals="-3"
      id="Fact_b3d1c00323e14ce299ef976ef69f4948"
      unitRef="U001">10637000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_404d0328c2414936bfa29794fbecaac1"
      unitRef="U001">11123000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:GrossProfit
      contextRef="c20210101to20210331"
      decimals="-3"
      id="Fact_c700326a769b4ed1a22e14e4251afd4d"
      unitRef="U001">3339000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210401to20210630"
      decimals="-3"
      id="Fact_0dd1ed96d3f44d0184e6a77fb9f59464"
      unitRef="U001">3432000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210701to20210930"
      decimals="-3"
      id="Fact_1c19627d59384c2c925743196db91139"
      unitRef="U001">4305000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_8df139dbed2d45e3a248482087253015"
      unitRef="U001">4306000</us-gaap:GrossProfit>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20210331"
      decimals="-3"
      id="Fact_81a027eed4ce46718c38a056843cf558"
      unitRef="U001">-2089000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210401to20210630"
      decimals="-3"
      id="Fact_cc05b8a7d9dd4ca999edbe8a5dd76c1b"
      unitRef="U001">-2030000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210701to20210930"
      decimals="-3"
      id="Fact_b02366cf3a7e4a90bc2c160ac6fc419f"
      unitRef="U001">901000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_7c478f81af8343f487fc42b5eb90f257"
      unitRef="U001">-823000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20210331"
      decimals="2"
      id="Fact_16eabe6513b2452f8d959547d2297a40"
      unitRef="U003">-0.23</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210401to20210630"
      decimals="2"
      id="Fact_82c069006f5243c3b0ca630a61c44d26"
      unitRef="U003">-0.23</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210701to20210930"
      decimals="2"
      id="Fact_53a5ea18fe284552bd332aba79044615"
      unitRef="U003">0.1</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20211001to20211231"
      decimals="2"
      id="Fact_18dd1a5e355649199275b0e312aeb709"
      unitRef="U003">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20210331"
      decimals="2"
      id="Fact_fb4332f6e47043ab8e22c852d2c7e1b0"
      unitRef="U003">-0.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210401to20210630"
      decimals="2"
      id="Fact_ccf1be2acf9f477e9a1358987b0755d7"
      unitRef="U003">-0.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210701to20210930"
      decimals="2"
      id="Fact_852c8c51d4a443bf89bc0a4166eb37ad"
      unitRef="U003">0.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20211001to20211231"
      decimals="2"
      id="Fact_303895ff661347a9ac6e471dda9f1a20"
      unitRef="U003">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="c20220101to20221231"
      id="Text_b88add478d2a44d38e0259d38450dcdf">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;16.&#160; Change in accounting principle&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Effective April 1, 2022, TransAct changed its method of inventory valuation from standard costing which approximated the FIFO costing methodology to the average costing methodology. We believe this methodology is preferable because it reflects a better estimate of inventory cost as we do not typically perform intensive manufacturing of our finished products, which are therefore better measured under average cost. In addition, our business is projected to include an increasing sales volume of software going forward, which better aligns with average costing. Comparative financial statements of prior periods have been adjusted to apply the new method retrospectively. Tax effects are calculated at the Company&#x2019;s marginal tax rate, or the tax impact of incremental income changes rather than the average tax rate applied to our total net loss before income taxes. The following financial statement line items for the periods presented were impacted by the change in accounting principle.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Balance Sheets for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventories&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,720&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,711&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,143&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The ending balance in retained earnings as of December 31, 2020 was adjusted from $19,718 to $19,607.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Operations for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Cost of sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,705&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,817&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24,137&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24,004&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(133&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,418&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,249&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,382&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,485&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,597&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9,510&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9,377&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Loss before income taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,124&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,236&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(6,216&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(6,083&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;389&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;413&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,071&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,042&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(29&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.07&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.01&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.45&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.02&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.07&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.01&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.45&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.02&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares used in per-share calculation:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Comprehensive Loss for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Comprehensive loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(662&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(750&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(3,964&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(3,860&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Cash Flows for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,150&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;29&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventories&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,440&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(133&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Changes in Shareholders&#x2019; Equity for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity beginning balance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,280&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,361&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,236&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,125&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(111&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings - beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;16,308&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;16,389&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,718&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,607&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(111&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings - end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity ending balance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,991&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,984&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,991&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,984&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock
      contextRef="c20220101to20221231"
      id="Text_f2dd8af0dfc44ddab8c8ad443e2938c7">
&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Balance Sheets for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventories&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,720&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;7,711&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred tax assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,141&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;5,143&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The ending balance in retained earnings as of December 31, 2020 was adjusted from $19,718 to $19,607.&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Operations for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Cost of sales&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,705&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;6,817&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24,137&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24,004&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(133&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Gross profit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,418&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;4,306&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,249&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,382&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Operating loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,485&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,597&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9,510&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(9,377&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Loss before income taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,124&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(1,236&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(112&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(6,216&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(6,083&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;133&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;389&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;413&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,071&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;2,042&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(29&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss per common share:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.07&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.01&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.45&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.02&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.07&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.08&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.01&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.45&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(0.43&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;0.02&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Shares used in per-share calculation:&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Basic&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; margin-left: 18pt; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Diluted&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,848&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;9,298&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Comprehensive Loss for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Comprehensive loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(662&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(750&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(3,964&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(3,860&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Cash Flows for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Deferred income tax benefit&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,150&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(2,121&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;29&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 64%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Inventories&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;3,440&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(133&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;The effect of the changes made to the Company&#x2019;s Consolidated Statements of Changes in Shareholders&#x2019; Equity for the periods presented are as follows:&lt;/div&gt;

&lt;div&gt;&lt;br/&gt;&lt;/div&gt;

&lt;table cellpadding="0" cellspacing="0" class="cfttable" style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; text-align: left; color: #000000; width: 100%;"&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Three months ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="10" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Year ended December 31, 2021&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; padding-bottom: 2px;" valign="bottom"&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"/&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;FIFO Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Under&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Average Cost&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="2" style="vertical-align: bottom; border-bottom: #000000 solid 2px;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;Effect&lt;/div&gt;&lt;div style="text-align: center; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;of Change&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; padding-bottom: 2px; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity beginning balance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,280&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;39,361&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,236&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;30,125&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;$&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(111&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings - beginning of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;16,308&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;16,389&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;81&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,718&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;19,607&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(111&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Net loss&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(735&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(823&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(88&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,145&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(4,041&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;104&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Retained earnings - end of period&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,573&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;15,566&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="vertical-align: bottom; width: 28%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="text-align: left; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;Equity ending balance&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,991&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,984&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,991&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;38,984&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF;" valign="bottom"&gt;&#160;&lt;/td&gt;
    &lt;td colspan="1" style="vertical-align: bottom; text-align: right; width: 9%; background-color: #CCEEFF;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;(7&lt;/div&gt;&lt;/td&gt;
    &lt;td colspan="1" style="text-align: left; vertical-align: bottom; width: 1%; background-color: #CCEEFF; white-space: nowrap;" valign="bottom"&gt;&lt;div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;)&lt;/div&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
</us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:InventoryNet
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_a98426c6f7014f8cb5da9462561c1136"
      unitRef="U001">7720000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_24eea9adeff848edbd9d13bd1309b257"
      unitRef="U001">7711000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_0b645ad392064f28b656ffc221da94c6"
      unitRef="U001">-9000</us-gaap:InventoryNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_962c1ef801e341b79f6538a8e9d9f539"
      unitRef="U001">5141000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231"
      decimals="-3"
      id="Fact_e0d5a633b8e1407f922ac8c924ac402c"
      unitRef="U001">5143000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_0b3c630828b74a75abaa1bac9aa9470b"
      unitRef="U001">2000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_356c051491b74aa6ad0809119c4484ac"
      unitRef="U001">15573000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20211231"
      decimals="-3"
      id="Fact_1e9ad105abdc415381945e1dfcaac60d"
      unitRef="U001">15566000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_078fd16cb54f4be183006dc75ea84c74"
      unitRef="U001">-7000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_876086785f204aeb88f44fd35caeb1d5"
      unitRef="U001">19718000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="c20201231"
      decimals="-3"
      id="Fact_b24a1d7603f442c5b62b79e589bfb76f"
      unitRef="U001">19607000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:CostOfRevenue
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_fe7e43133c8744a692181f4ff9979412"
      unitRef="U001">6705000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_d960493393744461b1bd736410ecf59e"
      unitRef="U001">6817000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_455d3dce2f8f40d0b4047f075b8dd0c0"
      unitRef="U001">112000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_db503044aa154a60a9005889f83489b7"
      unitRef="U001">24137000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_70decc94001b421b85e165089d8a9c15"
      unitRef="U001">24004000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_43d7af8f317242259ec08635461e74ab"
      unitRef="U001">-133000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_0fc7750c96fb4a3683692b9eecf4f69d"
      unitRef="U001">4418000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_131651e539f941309df5565ce2708a04"
      unitRef="U001">4306000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_7ab19ab53d214f079cebf38c72fdf3de"
      unitRef="U001">-112000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_9211d5b838ef4802a8ee247ec4b81565"
      unitRef="U001">15249000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_dbe041491145489fb57e1588017bc002"
      unitRef="U001">15382000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_7b58e8c01abb49c7ac9b89b313cf100f"
      unitRef="U001">133000</us-gaap:GrossProfit>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_495f6a6e0ca44ead9d8ed96a85e89e9c"
      unitRef="U001">-2485000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_a0704d98692843a08300ede5f1b83e32"
      unitRef="U001">-2597000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_aa2a3660f8814e739d0b0f1187cb8f3c"
      unitRef="U001">-112000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_48e21322ea9b4a888a1a5785c2a0d6fe"
      unitRef="U001">-9510000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_2f3ac043444b4bb88496058798727483"
      unitRef="U001">-9377000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_65378a62264f4a169d447aece24697e8"
      unitRef="U001">133000</us-gaap:OperatingIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_e63ff83dc18d4d2c8c121f08e5865af1"
      unitRef="U001">-1124000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_4ed92774355c4a9385070b77926a4a5f"
      unitRef="U001">-1236000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_994a41def38445b0a9449de56772ca03"
      unitRef="U001">-112000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_a60f681a2b73488cb6e9baa1c145e4a7"
      unitRef="U001">-6216000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_b6644e7fa8df4ac28884df1eac75d4f3"
      unitRef="U001">-6083000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_4481c71d89c443bf83973fcb108b8a69"
      unitRef="U001">133000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_0dad31e4642f49a09c06a87ca67ac3ef"
      unitRef="U001">-389000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_7e59e432e22a4557ab8cdde154035eb8"
      unitRef="U001">-413000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_d36b15f7b02b421795057d37aa076e26"
      unitRef="U001">-24000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_d44aa215aa80437fa4780204bc9de00f"
      unitRef="U001">-2071000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_27872cf98bb5448bb4e98f203f5c280c"
      unitRef="U001">-2042000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_27ee52d7896a4b50a57fccb1fe6c36a2"
      unitRef="U001">29000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_f872be17a2b34eb28bb17b896de9de73"
      unitRef="U001">-735000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_48ccff3f3cf948cda1b4475edef8478c"
      unitRef="U001">-823000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_1bc339335ed241bbbb5ea30aad02c150"
      unitRef="U001">-88000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_7c191975e13a4a7dbbd9d2dde1a19d36"
      unitRef="U001">-4145000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0dbf5f59442b410ca4370a8510d48013"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_e990b4c692ce49aa8e225609d0970ee2"
      unitRef="U001">104000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="Fact_ff57ec9029e145578f9b978841524ff9"
      unitRef="U003">-0.07</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20211001to20211231"
      decimals="2"
      id="Fact_181402252e0d416db0f7564e477cf29c"
      unitRef="U003">-0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="2"
      id="Fact_17b0ec7d32cf41c89f61607313b9d946"
      unitRef="U003">-0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="Fact_947401d74a1848b6a4efad6feca5aeb3"
      unitRef="U003">-0.45</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_59e3f6cbfbf44d20a64ce403bd7c8cfb"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="2"
      id="Fact_37829d5560ae4e178c638359eaa1177c"
      unitRef="U003">0.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="Fact_37eb3b73cba64d899946019733c80bf8"
      unitRef="U003">-0.07</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20211001to20211231"
      decimals="2"
      id="Fact_529d007e2ad246e9881c95cd3432f23d"
      unitRef="U003">-0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="2"
      id="Fact_9e0773088a8145609037d2fc110a6432"
      unitRef="U003">-0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="2"
      id="Fact_efd1a61965424e67b7043bae83a9b468"
      unitRef="U003">-0.45</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231"
      decimals="2"
      id="Fact_1698aea13a5a44c09047e94bb7d93d19"
      unitRef="U003">-0.43</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="2"
      id="Fact_5b7306477f0d4bccb52145f33d17ce3d"
      unitRef="U003">0.02</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_2e94274e3fd744f58adfbf358440d626"
      unitRef="U002">9848000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_9b07c4d59f4d4c61a3f4ec65bcb62915"
      unitRef="U002">9848000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_091ae9ddb04c49b5bfb3f9680546fadd"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_812450c7baec4a5fa9209ca83020af03"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_a7737e613f6b40c7974f9ec691054bdb"
      unitRef="U002">9848000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_4ec3a6b0c12b4b20a1f5dd7c950db2fa"
      unitRef="U002">9848000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_a455e55942304541b117053c1feaff79"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_ebe3b91666ff46538357e57a230f2d49"
      unitRef="U002">9298000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_fc528739655046d5ba96cefc5c9ab8d2"
      unitRef="U001">-735000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_e38faf9bd2374089b8c0bdf5d2faba4a"
      unitRef="U001">-823000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_606509284f6743a49a9d547b898570d3"
      unitRef="U001">-88000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_d5c90c5335294020b872d722c6d74ab3"
      unitRef="U001">-4145000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_0976e85f236a4a038254911caa4a5c04"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_9030c2a6b06d4125bc66786fee418f7c"
      unitRef="U001">104000</us-gaap:NetIncomeLoss>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_c8ef71d0699a43b0a1812f88207c4de4"
      unitRef="U001">-662000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_8d9346588c21438ea5db5412832ad1e9"
      unitRef="U001">-750000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_a62e8de90b6a4565a9771e05bbce4afc"
      unitRef="U001">-88000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_e0e63e1a0714464291f5f72a1bcd8e2b"
      unitRef="U001">-3964000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d1a83a5f7d9b441d935959f60f1720a8"
      unitRef="U001">-3860000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_c59c50826afc43a1b6291bee1e35f376"
      unitRef="U001">104000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_2e3243aa49dc4081ae45592f3d8ae560"
      unitRef="U001">-4145000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d6bebf0bdb914022a228834590b2b06a"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_d055dceb2d6c443496fa7e0436505980"
      unitRef="U001">104000</us-gaap:NetIncomeLoss>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_e4c8be5d7f46480a8f78441cd35a3302"
      unitRef="U001">-2150000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d461081f59784f48a0c109dfd9565622"
      unitRef="U001">-2121000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_83fbaff47982426a86933f4e8feb2713"
      unitRef="U001">29000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_3c83414643df4192a0e0bfd47b6afc01"
      unitRef="U001">-3573000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_68ab0832b800440b96150792d23a1ca7"
      unitRef="U001">-3440000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_335cea155c3448d08841542b1c016e40"
      unitRef="U001">133000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:StockholdersEquity
      contextRef="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_7e971af55a624b85b168a60b41ae3455"
      unitRef="U001">39280000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20210930"
      decimals="-3"
      id="Fact_1459875aad684703af3baf3e2edb88c3"
      unitRef="U001">39361000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_a70d76ef6a494a088dd07b9c6df301dd"
      unitRef="U001">81000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_36e1c803acd74ac3a93521281d3b9871"
      unitRef="U001">30236000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231"
      decimals="-3"
      id="Fact_fff6b2e38ca14c2ea4a5e6356e1c6637"
      unitRef="U001">30125000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_91b2b439daea4d52a6b09ad4af2b19c8"
      unitRef="U001">-111000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20210930_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_03809af80aa94ab5967f04fee042406a"
      unitRef="U001">16308000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20210930_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_463863a89e84409d89cb302afb5ef458"
      unitRef="U001">16389000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20210930_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_5b29cb160bf84201ba03d37da6a09fc0"
      unitRef="U001">81000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_71f6302547344a80901cc4651ba2447c"
      unitRef="U001">19718000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_175972af488f4536b472cb891378dbf9"
      unitRef="U001">19607000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20201231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_b3336d58fbd744329c5aac099376d827"
      unitRef="U001">-111000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_31eae3c7b08841f0ac85877e7a0604fc"
      unitRef="U001">-735000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231"
      decimals="-3"
      id="Fact_df48ba826387440daff07ad65a54853d"
      unitRef="U001">-823000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20211001to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_ee7fdf65597e430da327cafa2b8530c3"
      unitRef="U001">-88000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_389b962f136e443ba0c22129c06b4caf"
      unitRef="U001">-4145000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231"
      decimals="-3"
      id="Fact_d1eaafe3cd3f491486880acf65f3491d"
      unitRef="U001">-4041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="c20210101to20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_bcce791fab954030855340614ca665f3"
      unitRef="U001">104000</us-gaap:NetIncomeLoss>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_bbec45a38efd426fb46242ff2079a8a0"
      unitRef="U001">15573000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_254b1f824b6c4ef6b232a3c9ace04a63"
      unitRef="U001">15566000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_ff6dff52d3a84758acf20ae7ab444e5f"
      unitRef="U001">-7000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_4d8fe0f858e2447bbef3ca3e31932c1a"
      unitRef="U001">15573000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_89b11ce5c14f4e21a0d00285d530a266"
      unitRef="U001">15566000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember_StatementEquityComponentsAxis_RetainedEarningsMember"
      decimals="-3"
      id="Fact_7dff33920fc54a15a94cc75ae669762e"
      unitRef="U001">-7000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_591f064dfb624a3ba0bc7d66cc04d651"
      unitRef="U001">38991000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_3e0db8217c644977ba9a8696b215481a"
      unitRef="U001">38984000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_c743799ebfe2492e938d16c9f8d30773"
      unitRef="U001">-7000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_RestatementAxis_ScenarioPreviouslyReportedMember"
      decimals="-3"
      id="Fact_1d7727705b934b368e2100c4873b61b2"
      unitRef="U001">38991000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231"
      decimals="-3"
      id="Fact_617021ef77db40f4b28703f9f5115e03"
      unitRef="U001">38984000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="c20211231_AdjustmentsForChangeInAccountingPrincipleAxis_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember_RestatementAxis_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember"
      decimals="-3"
      id="Fact_4d93d176155b4ff695063e556a04b819"
      unitRef="U001">-7000</us-gaap:StockholdersEquity>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="c20220101to20221231"
      id="Text_7a0238212f9f45698df40ad2fc23f0c5">
&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt; font-weight: bold;"&gt;17. Subsequent events&lt;/div&gt;

&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman', Times, serif;"&gt; &lt;/span&gt;&lt;br/&gt;&lt;/div&gt;

&lt;div style="text-align: justify; font-family: 'Times New Roman', Times, serif; font-size: 10pt;"&gt;In the first quarter of 2023, we collected the $1.5 million employee retention credit receivable from the U.S. Government. The Company has evaluated all other events or transactions that occurred up to the date the consolidated financial statements were available to issue. Based upon this review, the Company did not identify any other subsequent events that would have required adjustment or disclosure in the consolidated financial statements.&lt;/div&gt;
</us-gaap:SubsequentEventsTextBlock>
    <tact:ProceedsFromEmployeeRetentionCredit
      contextRef="c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember"
      decimals="-5"
      id="Fact_398163e336034e9085f2b3ef3a8a4c84"
      unitRef="U001">1500000</tact:ProceedsFromEmployeeRetentionCredit>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#Fact_14d134c5fbe340148268d5dfe009ec06"
          xlink:label="Fact_14d134c5fbe340148268d5dfe009ec06"
          xlink:type="locator"/>
        <link:footnote id="Foot_d955d8fd57964b2cbb978471388690e9" xlink:label="Foot_d955d8fd57964b2cbb978471388690e9" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted-average contractual remaining term in years</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_14d134c5fbe340148268d5dfe009ec06"
          xlink:to="Foot_d955d8fd57964b2cbb978471388690e9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_23b1a39ee72346a6a27a3554f4ad3103"
          xlink:label="Fact_23b1a39ee72346a6a27a3554f4ad3103"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_23b1a39ee72346a6a27a3554f4ad3103"
          xlink:to="Foot_d955d8fd57964b2cbb978471388690e9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_22fa15bb2b77457996465fc4e131d672"
          xlink:label="Fact_22fa15bb2b77457996465fc4e131d672"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_22fa15bb2b77457996465fc4e131d672"
          xlink:to="Foot_d955d8fd57964b2cbb978471388690e9"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_8e2cbb1bc4a8489883618e5b691d6a7c"
          xlink:label="Fact_8e2cbb1bc4a8489883618e5b691d6a7c"
          xlink:type="locator"/>
        <link:footnote id="Foot_02c9893d755d46e09c2c806bd0739d14" xlink:label="Foot_02c9893d755d46e09c2c806bd0739d14" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted average exercise price per share</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_8e2cbb1bc4a8489883618e5b691d6a7c"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_1a046905053745888916466b089b14b6"
          xlink:label="Fact_1a046905053745888916466b089b14b6"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_1a046905053745888916466b089b14b6"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_87b7ef37c79e4149b77eae5d38631de4"
          xlink:label="Fact_87b7ef37c79e4149b77eae5d38631de4"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_87b7ef37c79e4149b77eae5d38631de4"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_ebc9c40a649a4c66aec06f5d468342e7"
          xlink:label="Fact_ebc9c40a649a4c66aec06f5d468342e7"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_ebc9c40a649a4c66aec06f5d468342e7"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_df3938f8c7c24d37a5be348b6fd38137"
          xlink:label="Fact_df3938f8c7c24d37a5be348b6fd38137"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_df3938f8c7c24d37a5be348b6fd38137"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_6165e8fea0bf42e6bd40c15cef980e02"
          xlink:label="Fact_6165e8fea0bf42e6bd40c15cef980e02"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_6165e8fea0bf42e6bd40c15cef980e02"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_76e5d30a0083430fb73cbadab39dd773"
          xlink:label="Fact_76e5d30a0083430fb73cbadab39dd773"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_76e5d30a0083430fb73cbadab39dd773"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_d4d13609e6bd48d79e77aa0411834747"
          xlink:label="Fact_d4d13609e6bd48d79e77aa0411834747"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_d4d13609e6bd48d79e77aa0411834747"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_97d1d830fa1a4992be9b569010ebcbbd"
          xlink:label="Fact_97d1d830fa1a4992be9b569010ebcbbd"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_97d1d830fa1a4992be9b569010ebcbbd"
          xlink:to="Foot_02c9893d755d46e09c2c806bd0739d14"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_61428b6b7da94fe39e2fe74edcaf3bc3"
          xlink:label="Fact_61428b6b7da94fe39e2fe74edcaf3bc3"
          xlink:type="locator"/>
        <link:footnote id="Foot_42b55853fb414ccdba8ab0b20970caa0" xlink:label="Foot_42b55853fb414ccdba8ab0b20970caa0" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">weighted average grant stock price per share</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_61428b6b7da94fe39e2fe74edcaf3bc3"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_fe6033ed1fa94d7992391e7c1f21fb28"
          xlink:label="Fact_fe6033ed1fa94d7992391e7c1f21fb28"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_fe6033ed1fa94d7992391e7c1f21fb28"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_e3949a5fc12045c3b5160a0af88db9e2"
          xlink:label="Fact_e3949a5fc12045c3b5160a0af88db9e2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_e3949a5fc12045c3b5160a0af88db9e2"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_a6c042732c2c48afb323404407813393"
          xlink:label="Fact_a6c042732c2c48afb323404407813393"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_a6c042732c2c48afb323404407813393"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_7188852d38b04de483263809d5a6e5d5"
          xlink:label="Fact_7188852d38b04de483263809d5a6e5d5"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_7188852d38b04de483263809d5a6e5d5"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#Fact_7a344c6af5824c82bcf60226d39b1cc2"
          xlink:label="Fact_7a344c6af5824c82bcf60226d39b1cc2"
          xlink:type="locator"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="Fact_7a344c6af5824c82bcf60226d39b1cc2"
          xlink:to="Foot_42b55853fb414ccdba8ab0b20970caa0"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>89
<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,$%     @
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
MP-/88%\/+VCA!49X=TR0Y !X@3(U=B%R!@ U5A[$KAXBM#I>L8P@W\=/-&K
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
MNW(9(I+)B''ZG[JA512]C>A%_<$.5<^S]-\>?7=<34"_$M"_2  5(NN&[Q]
M[6.W1=2 !Q7PX")@Y05"DC2DZ;*+>M!)W191HW8K:K>5>LJ21+E#B7S)$G=/
M6>(=035TKT+WSD _>WU[!U-I6U;3 C\AL,8_K/B'Y_.?MKR'!TC8&?8'KMW?
M8V\,Q*[K')E[;&U]T#J?_HRU7I;?11L.,?8\9T]"4Z#GVIXW/")AQ\IQJX1'
M]1TG,OY2[N]=P/APH[-Z/:]G[P-W!]:!MQ:,6_W.GP.G:I8G:+O7S'/T?SY#
M\@3\WT;NJQKRM:K59V!KR=BYSE<(;O7VLU5?J5I=]=;+\5EF?M$V70[1L4]W
M1=4%;+T<7V;FI^_6^-"O[:;-NCNN+F'K[O@R>S]MP\;=UMX:4H?>FCMN=_<K
M?).4([22MX44Y.;.B4L?=S\3OJ2I0#$L5(YUXZK'QHL39-&0;)4?PIZ85$>Z
M_#)2IV[@.D#=7S F7QOZ7%>=X_W_ 5!+ P04    "  5F'M6IJ$"_W,%  #
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
M9#=\BR*KVK_HJ<-.1VBQK>IBW37F$:S3?/>;/'="'#0@Y$@#TC4@0@/J'&E
MNP94/(-[I('5-;#$!M:1!G;7P!8:V/:1!D[7P!$:8'JD@=LU<-N;M5.WO35!
M4B<79V7QA,H&S=F:C?;^MJWY'4GS)A7G=<G_F_)V]<7LYGI^\^$JN+P+ S2_
MXS\?P^N[.;J)T.S]Y74<SM'5-9J_O[P-W]]\",+;^6\H_-?GJ[O_HC'Z/ _0
MJU]?HU]1FJ.[5;&MDGQ9G4UJ'EA#/UET0;S;!4&.!5&LUSPMYW6Q^(K^^,C6
M7UCYIX)FIJ>Y7"[3)K^3#'U*TN68!S5+-FG-]S6D@9[TEM6\H-D2A4F9I_E#
MI>,*]5QWO+.HMN6+^4HCPY4N%MOU-DMJ'M=-O6(EXA+RKFC5]!&/#%WEBV+-
MT*L/156]UITG-@1<</&&S28\P?991O991EH>ZPC/._:0YHUZO-O(DGS!4%*C
M@"W>((I_1V1*IJJDV7':+6?3I3Y>8,J!CX<9(6,L8E-GB H43+XS=8>H4$:-
M*<%8.&6D@GE#3"QCZ!03>X\:J$CW*M(357S%4[Q:)27C=_E[%-WQ.P=A>3[%
MU+,%5;5Q-$_'M]4F6;#S$<^YBI6/;'3QCU^P,_VGJKX@R4)(L@B2+ 8B&V2&
MM<\,JV6G1S*#UWO3M?"$X"G0;KUNNN2VFUD5V9*5%>^V_]ZF]0OZX[;(,L2?
MXT])N53U">\L0%EFD&0!)%D(219!DL5 9(-4LO>I9&L[F:NJVK9]2W'?=2WH
MOBS6B#VS<I%6N^/MXZO8- ];Y>/>EKH_L=^VI9[(DGIM&2.PA$9$9$3$^D@&
M&CI[#1U8#0\[<I6>CA2C[TZGHJ;:H$XM-4BR$)(L@B2+@<@&:>+NT\3][C19
M[(; 758TL[RJ+M-%,\#;'=OF::VL-==8:ZZI!@(C(C0B(B,BUB$& GI[ 3U@
M 4V%YDDAVE.;B,,C;52G%AHD60A)%D&2Q4!D@SSQ]WGB_U">_(YR5C<'TV^
M15'5JKSPI2+SA9SPI<S!F$RQ4&@R2BPT(R(R(F)E+/A(L>%I;Q5, 64TE5IW
MLL%DQ"+4%8M-']2IU0;*%H*R1:!L,13;,%D.?"6L399;QH_P&4>U6K.<=[S2
MD"?)EXUGR,I2Z*+K FV2%_24UJMF[M+,=^ODF:E])6Q\^G60PSP;8TJ%PE2@
MQ,HT0R(S)#:%,Y2[-UBPWF&!E]M8OT2^$,NCOB/JKPW\Y/J%9 M!V2)0MAB*
M;9A0O=>$]6;3O+GSX\;E7S:=_8;E5=*^/&#/S393I@0U5Z-L0?''I#CS4Z"D
M:C1"(C,D-H4S%*^W8[!VBGX1%25+'W*TV/)RRQ<OJ"Z3O,IV B;+O[95W93I
M_L')"TZIIV6Z@)D9$I@AH1D2*2#8PZ*<>M!0S=Z1P'I+XIJ+E!65^@%@G.#/
MS)!  1E;4PN+,IG]!C,D-IYL*%-O.F"]ZQ#F2XW#CI7J.0J+71S98ME]L&UB
M234KP[!M.XZHH0Q3NNPJ.HN*4LKQ4\_WK"-2]A-SK)^9"U)J;':UK/),U_=<
MXGF2M-HP3GXV0K*%H&P1*%NL$)CG+79=>JR*>DL!ZST%Y:NJ.=OP.S[5W''(
MN?(,E"W LJF!'2KF8@AZT@B4+>[8!G7N4^?8S>Y] >S_Q/<F6.M"G)P$D&P!
M*%L(RA:!LL50;,,7W;U)0O0FB6ZPHF]Z:H* L@6@;"$H6P3*%A/9>!I[Y,@,
MG/2&!]$;'C\P_"*R>R$/OXAL&*B&7PJ8:OBE@*D7.2CHI.&7(G[-\(L<K!;1
MFQG_Y_"+R,Z$>OBE#^/D"@*U)D#9(E"V6"&P?OA%>MN!T)_X1":0*SQFH&P!
M*%L(RA:!LL50;,.4ZLT8HC=C0%8T=.?065O$;,68(:$9$IDAL3;<H8Z]#4.
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
M$%35M^WU!R7VYL)Z)902A7G<L73-*FT ?]\(V+LU'_07M/_S,/\_4$L#!!0
M   ( !68>U92&E/_U@X  -,E   8    >&PO=V]R:W-H965T<R]S:&5E=#@N
M>&ULM5K;<ALW$GW?K\ JKI1<15,DY5M\J]+%CKVQ(Y7E)+NUM0_@#(9$-#.8
M !A1S-?OZ<9EAK*D;"JU+Q(Y!!J-[M.G+^2KC;&7;JV4%]=-W;K7>VOONQ<'
M!ZY8JT:ZJ>E4BT\J8QOI\=:N#EQGE2QY4U,?+&:SIP>-U.W>FU?\[-R^>65Z
M7^M6G5OA^J:1=GNL:K-YO3??2P\^Z]7:TX.#-Z\ZN5(7RO_4G5N\.\A22MVH
MUFG3"JNJUWM'\Q?'CVD]+_A9JXT;O19TDZ4QE_3F0_EZ;T8*J5H5GB1(_+M2
M)ZJN21#4^"W*W,M'TL;QZR3]'=\==UE*ITY,_8LN_?KUWO,]4:I*]K7_;#;O
M5;S/$Y)7F-KQ7[$):P^?[(FB=]XT<3,T:'0;_LOK:(?1AN>S.S8LXH8%ZQT.
M8BU/I9=O7EFS$9960QJ]X*OR;BBG6W+*A;?X5&.??W.J7&%UQQ8RE5CV#@N<
M>W7@(9R6'!11T'$0M+A#T'PA/IG6KYUXVY:JW!5P *VR:HNDVO'B7HFGJIB*
MP_E$+&:+Q3WR#O-5#UG>X9^[JOCWT=)Y"WC\Y[9;!YF/;Y=)(?/"=;)0K_<0
M$T[9*[7WYMMOYD]G+^_1^''6^/%]TO^,<^X5=+N:\ZFXRR1?K&S=4>'%%U6L
M6U.;E59.?&@+8SMCI5>EV/=FI?Q:60#6KX7V#H&]=+K4TF+Q1'S[S?/%8O8R
MB9KP^_E+@3WILQ/3=++=YH_BXXVZ^:1W^8FQZ:'I;7SX<"(V:UVLQ5HZUF0-
M>OJME]8KBP>M>"^;4K43<6+:ENB@Z+V0;<EK.ZN)C@1X#C?3[4I4LM"U]EO:
M^<&O92$GXD?PR[_ +Y.X3K%<TZK1/J=6H"O_0CA3^8VTZE%I03FM\,F*6SX5
M)[9A@ZE[LKT38%>Q!H&(%2 "<T*C2^7IC*+N2U;*F%*0YW2A1@(GHI!PFF'!
M*]G04GH9;=09'$6N=;)6R83[\</SLXMD0"%[,(UD(,2SI^*LMR,5<1_0G=.K
M%MZOK&G8D]"WQW%]Q]Q8BKR?M0@$!HQ8]5NOK2+S./Z$I$$V=H(M+(LZ/GM_
M]'?QY9/X %04K#4]/CG[^</IH_EWXAS[5*,+WO]];9:R%A=]U]5;<;)&^A&G
MVMF^"]I>P')**&GQ*?AC-MF5U259A)C"D#MZ:.\-S-D[!:T*93V$^N"R,HLF
MM_/%@P(*FTT3%E6ZE6VA\32;\!>%$ZZ4D+4S8JF !<V7PUG+;9+APB4*OH1V
MKJ?P@?Y(LF12M]9=1WXMC(O6TVU5L[,(N!31KK>T*44!3ASV(TZ&K208AF]H
M@?-0E[8YI.:X4"X#]&&)4M5 KX5\4_8%MN,9RXI.Q?5.>TN*P<"@:?I,M\"[
M-]"J5E>J=A"2KP'DZ$H7LO6X+,PN@0J'Y!D=#:OO&&(P.32D2V_@SVL$FU;0
M^J8\NH%EE+MX]%2\QS-<8"+*K.:"I& E/+*L%=THV>EV]>E<Q)1N].^*W1[<
M]Y4IR)NN+V!-5_4U]&E,J:LMG4KK!A.NI8_G5Y5*.+CGW@ZKZYK^.P@J @R:
M#L2#N.[ <"[$HJS!=2UX*0C3[)ZCVJ]-#U:Y\])?^VMD*KH\63S<-T4)0\-
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
M\5#HP?@R(%@'D+'AGBEE1;:!O"O>@]4DZNV''Z_^2V5%U>:' GXZWZ-VH92
MG 6R1<D].M>NJ-_/M-,^<\39 &UDF&_LAKSA(Q394<D*Z_7D#B252B_'4%5K
M#KE^Z(_WRLK)B8*DG'B>-PG?F>W'KYY+OHS99PV31_/0[GGSV)6D8@^J3W*$
M>L,=H0\N).+.B2\IX<ZKMO& Q6WSHOZ*3T8'JM7Z"A45=VHEL.=Z<O3]NT7%
M7?(X+M8E$5/XTPBI9(#YL]IRI>0+F0=+IRBP17TGQTH,[GL]\T%4YQ_ZBVR+
M4T-Q;=(BQKYNUM9\91C<6#Y&4UG^/Z"<WRCL$]9E6I95;7RE5.[&'=PKB%&R
M:R$/L5;SN"+W+*A)X0W7XV,YU"EH"T(K_J0B6P?5G$]#OWJ[^*@Q!O/)?._(
M #?LH%J<)=!&V[HGL)7K!RO)MHY;\QCA%F25.UB0BH9"MP^P$FR".D;JG2_E
MM'032-)TT 1L(!Q1YX J!I%E^,;]A7!:\B2?M"^??@)D,/6Q@MQ%,A=[0T'O
M&BK,4?V*L+LCMJTA[JC[>.PET'!0:M-I'E@2[PDN)0[<=7* 1)W89CJ!H=+M
M@+7J,!QKHC QG)R7EOW=^7#Z&$XNN). ^I0Z2J$/*<4=RC7([D\O2A]??,*E
MJ@["KV;<<NFR'N/+3>)&ZEL+Y(O4XC7#1SP2]K>=*^?=:#KP[JHARC)>:/ I
MDWA4, /6Q #*]#/J]Z&HM"2U1?70JRD37X$F%-WY( 3F"!0JC:.-RJL[*I]S
M5.;HR(>ZDNUB%V\.QE$*C-0-"YM7)9SO8WRCO_@S#=_$RR4M^6W<B,^\_9'W
M1I-E_0C\%Y@<QMTT+)IWI<<B7'5\KF!Z>]_OR/DO5)HFI^,)/IR=TM]TDDQ/
MC_<^?KA1ND4$$]6DX^3TY$Q-Y,/%WO5&D92>):?GISS]>$HM[O'D8B^>:M^$
M</M#C2)('2?C\PMU<7&N3O#I;(]I5"44**;Y0AUCR/28Z#E.TO$)/IR<)^GT
MHB>6OUD(9]-S?#@_/Q,AG$Y.UH5PG)RG9^J<_L?#+2(8)^G9%"REDPN5GB33
M\62/KF@TM?D"^:3J^'2L3J?I3K&<)"?C5)U &Z?)>#S=(I;I)#D>C_'A-+F
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
M:W-H965T<R]S:&5E=#$P+GAM;(5474_;,!1][Z^X"@AM*#2)&Z"4ME*!H?'
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
MRY(>.M3.@/2%4O:T<0?T3^?J!U!+ P04    "  5F'M6MTS M7X"  "1!0
M&0   'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6R-E%%OFS 0Q]_Y%!:KIDV*
M @$2TBR)E+2;UH=J4=MM#],>'#B"56,SVS3=M]_9$)9I:=07\-EW/_^/XVZ^
ME^I1EP"&/%=<Z(5?&E//@D!G)514#V4- D\*J2IJT%2[0-<*:.Z"*AY$83@)
M*LJ$OYR[O8U:SF5C.!.P440W5475[S5PN5_X(_^P<<=VI;$;P7)>TQW<@_E:
M;Q1:04_)605",RF(@F+AKT:S=6+]G<,W!GM]M"8VDZV4C]:XR1=^: 4!A\Q8
M L77$UP!YQ:$,GYU3+^_T@8>KP_T3RYWS&5+-5Q)_IWEIESX4Y_D4-"&FSNY
M_PQ=/F/+RR37[DGVK6^,-V:--K+J@M&NF&C?]+G[#D<!T_"%@*@+B)SN]B*G
M\IH:NIPKN2?*>B/-+ERJ+AK%,6&+<F\4GC*,,\M5EJD&<L(9W3+.# ,]#PR"
M[7&0=9!U"XE>@(PB<BN%*37Y*'+(_P4$J*B7%1UDK:.SQ&O(AB0>#4@41M$9
M7MRG&3M>_/HTR8_55AN%O\7/4QFWO.0TS[;*3-<T@X6/O:!!/8&_?/MF- D_
MG%&;]&J3<_37%N4LY+3$R9"<^A0/)9!,5K44((PFLL!N^=^+*IAY6!FHMJ!L
M=;QW-X*84C::BER_=\6RCY%W3SE5+D;DCHQM3$W;R)P:!%^0:) FB7M/QXGW
M0)_1?1R')+WT-DH6H&WC4]XAA,8^8V)'XG1$HNG8^V)*5)'$$9FD$^^")(,P
M31$7#Z:7"3E5A>"H32I0.S<,-+(;8=J.Z7?[>;-JV^RO>SNL;JG:,:$)AP)#
MPV$Z]HEJ!T!K&%F[IMM*@RWLEB7.3%#6 <\+*<W!L!?T4WCY!U!+ P04
M"  5F'M63:BAJ= "  !N!@  &0   'AL+W=O<FMS:&5E=',O<VAE970Q-"YX
M;6R55=M.VT 0_961"ZB5VMAQ$D"01.+2JGU 1:"6AZH/&WL<KUCONKMC3/Z^
ML^O$#5)(Q8/MO<PY<V8OQ]/6V$=7(A(\5TJ[6502U6=Q[+(2*^$&ID;-,X6Q
ME2#NVF7L:HLB#Z!*Q6F2',>5D#J:3\/8K9U/34-*:KRUX)JJ$G9UB<JTLV@8
M;0;NY+(D/Q#/I[58XCW2C_K6<B_N67)9H7;2:+!8S**+X=GEV,>'@)\26[?5
M!E_)PIA'W_F6SZ+$"T*%&7D&P9\GO$*E/!'+^+/FC/J4'KC=WK!_";5S+0OA
M\,JH!YE3.8M.(\BQ$(VB.]-^Q74]$\^7&>7"&]HN=C2)(&L<F6H-9@65U-U7
M/*_780MPFKP"2-> -.CN$@65UX+$?&I-"]9',YMOA%(#FL5)[3?EGBS/2L;1
M_ Y)6N15)G#B2>JE@UH)/8V)R7U(G*V)+CNB]!6B80HW1E/IX+/.,7])$+.J
M7EJZD7:9[F6\QFP H^%'2),TW<,WZDL=!;[1VTJ%7Q<+1Y:/Q^]=57><X]V<
M_LJ<N5ID.(OX3CBT3QC-C]X-CY/S/8K'O>+Q/O:W;,Y^HI,!O%;] X*_N\0/
M"!@GP_>/'[J9AO?10EO*K 2A%!2-4I^(;R1@52NS0G0@+/>47,J%0B #M; D
M,UD+0A $5"(L<"FUYH1@BC!0^6,"LJHPEQRG5E 8Q>;@0WA>6L@]G*-+5CSH
M%!*+Z-,>O3M-AR?GD#&3E8O&WV_G\PFP:^@D.?2?_T":VHOVH@II'<'QX4;D
M#F#%1NA$\)*>!?,-P=;*#>![8SO-OJ:7*5OD)3L832:,,HT3.@?_'(SX O4C
MO!?^T(<9;O =X,-58W PM1KL.EKQE@=4:)?!Z1PG;S1U=M"/]F9ZT7G(O_#.
MB6^$Y2USH+!@:#(X8>^RG;MU'3)U<)2%(?:GT"SYAX#6!_!\80QM.CY!_XN9
M_P502P,$%     @ %9A[5AN[!1Q\"0  ]!D  !D   !X;"]W;W)K<VAE971S
M+W-H965T,34N>&ULI5EM<]LV$O[>7X%1TXX]H\@2'25N8GM&SDLOG;3QQ.GU
MP\U]@$A(P@4$5 "T[']_SRY(BE1DQ;F;26R)W%WL^SX+GV^<_Q)62D5Q5QH;
M+@:K&-<O3TY"OE*E#".W5A9O%LZ7,N*K7YZ$M5>R8*;2G&3C\?.34FH[N#SG
M9]?^\MQ5T6BKKKT(55E*?W^EC-M<#":#YL$GO5Q%>G!R>;Z62W6CXI_K:X]O
M)ZV40I?*!NVL\&IQ,9A-7EX](WHF^*=6F]#Y+,B2N7-?Z,O[XF(P)H6447DD
M"1*_;M5K90P)@AI_US('[9'$V/W<2'_'ML.6N0SJM3-_Z2*N+@9G U&HA:Q,
M_.0V_U"U/5.2ESL3^*?8)-HL&XB\"M&5-3,T*+5-O^5=[8<.P]GX 8:L9LA8
M[W00:_E&1GEY[MU&>**&-/K IC(WE-.6@G(3/=YJ\,7+*^?!H>TRG)]$R*.G
M)WG->Y5XLP=X)YGXW=FX"N*M+531%W "L:TV6:/-5790XAN5C\3I9"BR<98=
MD'?:6G?*\DZ_:9WXUVP>HD<2_'N?H4G,L_UBJ#!>AK7,U<4 F1^4OU6#RY]_
MG#P?OSJ@Y+-6R6>'I'\C!(=YST:B8^-KKPH=Q3N9:Z/CO?AHQ>_2YRLQ.667
MCH=BHX2R48%0:!N=D")/3(N&Z2BNE/CYQ[,L&[^ZT<K*7;'\;O+J&)D:5R*1
M?%"V@ KB5^^JM?CPX75/#+U5ON63MA!0 =DL(_1PE?]*"1;]^8VXDO;+4/PQ
MFHW$9\C;JX]8>W>K"Q4$>A0,\NK6F5O2II9*3A-N(: 9+'XR&8_&*"5CN"M
MEXT,PGF]A#[&W MJ?$5EH!FHU=U:>W#O>/*TY_>*S!/Q007G2I)B"^-D)+T\
M[":%-$<B1*'^KJ2AXTC&$LTUTE-0'.EC?K;VZ(2);VVJ(":C%].?AGA=OU\H
M:  1"Z@2.G39*",ZLA*T('X^FHY_2LZ,+H(#'4QY2H<%S+<YN\V%""'*<'B2
M$]"&X6!M\XJ)\3!WY=HH'/2PW>38)]FS*4A<%: $\F^EX<4-S,8!:^?I!%#5
MB?(1LI ,=(:->!Y4#'7:X.R=%VQ5C_$K!NOLTQTF/"6%7SL;G-$%FW@E#4R'
M%=1&PTC\I80TP8FUO*>P*0[6F#Q'B5#9*H!I_NCX?U>N2'@F*"A-1]#Q!F1T
M;*C0P*2-FI,4/UA(;17T2U:5:VGO#Q6++M>.0BF;@",'<G<+4OC(V:X8=G#'
M3%:MFO\' U5PZVC?\6#D'P7)H*P]F_Y$6BF#NIH;*)KGKK*<5[G2MY*><8K2
M@4;!#,\)+X_%D^E.@1[-CP4[OR//RPWF(.J'#""BYXD 5FF,PT(LG2LHW# M
M.I^,H6+S.H\!)5$ZZ.TX;^**[!MR)Y+SY"<8R-DN9 '_01,<HQ&[.1+&0EV6
MEW.IUE(H4*$NK957ZFE)PU&LH:)#>7E7BAGJV(@TW\9TQ&\56M/IN'Y ]<+5
MK#W*OV9$Q^9RZ7B>:)J&M2>,395YM!7-U=J)*=@)JT7\1P31@W59E>+MU?O/
M;V;))FBM;<5LZ.;+%;-/LL>8DWID/< G(QI OU7(UJQ^,NRITA]$4 =@KRBI
M5H\.S1\Q:^G^<",Q:>=*[9D':O!1LD2^DG99NVQ/@7RK>MDM7[FU94]VJKN<
M$^A6:M.D6TN2@D8U%5<R]OS5QFV? *0^R(V2R)PG+Z;CMN=^2V?$!%61VG#=
M1N 2KC6)8.;2X"OF%X=_B%F&M+.D'\]H(N^3B!H*<."WJ?"./--[UN874)\J
MY]"Q07X,4[PB>SD]TJS1W*/Y5"K40UX<B1D;LU_R2A882Z/3ML> $OL*=5?6
M_/&=G0OFR>GHEZXHBU5JVQES">#(I$E1M*YOCHNF;":_-%KO=F7ZGE!5OXKZ
MZ9Q]5R%ECRJD(>4)5VH:4(\J*\2#YJG[G^U"U<SJ,XGL$S*6)_<[1?01E#W
MV=!N7[>V<3996R^%;0X_RD&'YNJNYPM= 'Y$U$2A%_=I5B\![98T,#!\*AN;
M<NL 5E>6.K(4ES*DA8B,Z>0:99!S$M4Q J1LADYJ7>%@]!JL7#!6AB\>9PPF
MH:D*M7]J<JMTQG"^O_R!AC^IH^YBO;O79F):5YZD$^A*G;*/J;<3I'XR?471
M_H%1+H_5>FGH"%5W.C"FGAN7?Z'T2#B#QYC'.BWA<\6F4.+@-Z! O?E8M6D2
M)JRIY>)? QX+@-, ESPH;DB3$,&*J57W!FR!J9NGW@VHR*B$<3G\K8& =F7C
M/\9HJ&!X))B/ B,81.P!0X0Z\9Y>E[K(_O@=;6LTK5N5;: /7)3+L!(Z,.JB
M*6.!N-H&1GEQ2N82"*4;$S&O@F;$4\A[6I08CM$8NU4IA^M+$.%RX*4$C""]
MQA%PSTB\MRV,2OGR=8$V:"5TG<E(!LFN:2[2Z$MO.QCM@*OIV8ZKASWX\T#/
M[TW2;)A-Q\/Q>$P2*4ERO2; R04,PWJX6Q0.^E/5K^2M^K]572G[/<ZB,VAC
M:5L&H><]ANQ:09IP&R%O*RYM!)FLX)3<(:+0RCQ6O(5T/#@2U]?7X@-(TK7#
M?8,+^TV>(.[28T37&*MEXGYPI>@NDA9N6OP;S^SKFYC?69.S*$7D754#K%KJ
M2/S9CEGJ&RVXP;MA_^B-JPQF&74QOT3&VT8,M["8@%B*%6O99R9LS@LA50[\
MCRYAZA4ZP6GZQ/MRPM4PG^Y(5DJ:2/ *['-EU4+S5A(@$/PRU UZ&\H2R_)2
M+I$X<^Q W 0["_E<@5XA1>:^DFAQDVGC?5Y^4[.@5%#;%L:IIQ8+RLJ'^=$$
MD,&ZOEY)FP5=@>F<%%_"!0_S<BOHV$#KT_?JW]E[X,+41))KC4;_K06U<ZW9
M[V>?WMZ(64Y0L*D!VA"/MN"+0LB9T84TQTV:0&"NU,,AWRY7CE*GS8!V0>VG
MPL+YOI#$UF3<%O.=[=N4TLZL&%'H!1! ,GI?S30HZN9JMMT@VE./TB2GCD<W
M"&ULT'1\6OGPW=GCW1)CS#Q7*(U%187?5LK\OCTMG5R?V!#0W( G> #SW*<&
MD$!@LQE\WB'?UFGM;AGVW17]RBW<[K(: )2G%%9.MLY=T%>W/C<$(<MZAGW$
M-*^]6E2^F>GW='&7FN_N*C$9[;OZ/>G<Q)?*+_GO#30+T;;2I7S[M/V3QBS=
MY&_)T]]#@(26-/",6H!U/'HQ'0B?_L:0OD2WYGO]N8O1E?P13079301XOW N
M-E_H@/8//9?_!5!+ P04    "  5F'M6CRP5OED'   8$@  &0   'AL+W=O
M<FMS:&5E=',O<VAE970Q-BYX;6RE6$MSVT82OO-7=#%*2G;!( &^%4E5DNUD
M?<A:)=E.I;;V, 2:Y)0 ##(S$,7\^NV>&8*D1&GCW0N!>?2[^^L&S]=*WYL5
MHH7'LJC,17=E;7W6ZYELA:4PL:JQHI.%TJ6PM-3+GJDUBMP1E44O[??'O5+(
MJGMY[O9N].6Y:FPA*[S18)JR%'ISC85:7W23[G;C5BY7EC=ZE^>U6.(=VJ_U
MC:95K^62RQ(K(U4%&A<7W:OD['K(]]V%;Q+79N\=V)*Y4O>\^)1?=/NL$!:8
M6>8@Z/& [[$HF!&I\6?@V6U%,N'^^Y;[+\YVLF4N#+Y7Q>\RMZN+[K0+.2Y$
M4]A;M?X'!GM&S"]3A7&_L/9W!X,N9(VQJ@S$I$$I*_\4C\$/>P33_@L$:2!(
MG=Y>D-/R@[#B\ERK-6B^3=SXQ9GJJ$DY67%0[JRF4TET]O+.JNP>9)5AQ>Z!
MNA"5.>]98LT7>EE@<^W9I"^P25+X355V9>!CE6-^R*!'.K6*I5O%KM-7.7[
M+(9!$D':3]-7^ U:0P>.W^![#(5_7<V-U90:_SYFL^<X/,Z1R^7,U"+#BR[5
M@T']@-W+GWY(QOV?7]%WV.H[?(W[WP_,ZVQF,1RW_/AN#%\I?AKL"D$8JM2:
M:\?0O5QFPF(.<Z[CR%U8NY3'_)UX0$T5##51FI70" LA-3R(HD%0"S!.EG*\
M8*E%90T0GKC0@JAR?DE@+0R<#./!S&V=C.(A19\<6Z.KW&(3P^^D56$42%*-
M=*%#JV7&:GD1324#ZPRU)4@"?,2L87+CN.92$S>E#1D@+-"V!47:@P"6(Q>2
M>)$94N6LN"7\B1PAL3*J1'H:*\AIAH3_V1 WPI65Q =9+5N91._0DJY!B:RA
MB>'+]SB,O&OP)?.<GZ;Q<.#]E/3C=,+Z'7CSJ>=8O!7S GT VX :%\E[W!R$
M^Y3Q\KFZ!'_2O('&H',(4X:@LN;"O66BR)I">#X<"15XNKA[PL.X\XN@R!B"
M.X?UY #5:';=2N6J4,N-8Y0CF:)J]C22TX.?#O3>UVRG4JER+,XZ?Z#0'IZ
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
M&2N:[J9<]- M36^&.NTEH^3D\1DLYPJD:ZJ'[VNWZ<$6*D"TM-JA'*PIA%?
M#XO@B$PCO&CX% L6"JZI4#5<^M)IKAGIG +4D+I<RX7.46S*-76J+=1#'.5(
M%J8B5-)!RAL4O,EU)NG=6UVB$30JA?N_(/@:<J-FC;VD]8@R;ES"/?(B:RHY
M@!M2_+/P=O-4U2-2/:TM* ;R#>+YE'!P,)_.=DAU</$$(#B)DQKA#BXA-*U1
M#M9@WB DW+L-](U'D\X;N=&^AH.F2-4]V!I+&$Q'LYV,=R6:VQODLAY=L"*9
MB6DT>G36*JRIE "8PKBOJ$I))5QO$,#A.(;-A%D48J@))M4JQ70R![9/.G\@
MYH#+-+45-6][:8P(CT>SSC,M!</C\4S,1U$MZ/MBVCF03,8B/AMU_FZIOP^5
MQVP0QS-Q-IA'\\X7F5?!"$G50&B+J7(VH<$Q'6,Z=?Z!1!R2,AV<36-(B6:3
M_<IH67:^GZ5H/MF%/GB!?";CIRK:SL7)&:WY9'Q=98>,Z<&<<4R%!H.2L;CF
MWGN"Q*VN9TA&TXD>>;L'&3URO'FRCP\#$GOW-&:.)H9!._X(8L-PW+4>?*"I
M$:@_*C8,1*;DFHNLGEXU)AS0W(RJ U$Y[_R3<)8IJ/BY%G\M<Q(Z )ZM=%F2
MA7 8_FB349 1F)Z8G,T['ZL%,T8>RQ:'"4G(XDV;3&VLN=..5_2G1%>:W%]G
MF0X[T[6TJ^,;=WT]31Y-4V6V9Q3E+YAV<P20/P\_#GG 5-SKS=!M:22"P[DW
M>]SGR0JBA:7,'PA;%G1R.Q[CQZ V$/EH 0N+H^%(O*C_.L0K<N(5;<ZQ<W^8
M? \.R7",QU&-/)(Q0MVGM*M-O1H)H^&X!M;V7!N$>ET>" EAY3#"/A1%Y32;
M4X!E!;0!:BKKP91H$CT23Z(@)YWWVC%G*Q4JC/)42.+; JRE<.W%!"^?D2V6
M%#)O7%T9>$VT%'\)L]ZCG+ ?@5+Q0H#603SC64M=0=A+'E#$^Q';&F (FXDJ
M0U?GUR?$%P@$#2_$> P-+\37 !R]"%QY'S:BI,4]:,@R9*T8AZNRIII_U2U:
M)PCA/, 8C[ 32)=^(/12/ H#DIDJ![^5=V E"RR2[ $7_O%*1KQEB5:H?(6:
M#KT$</H::IP8+9648@:#=30#O6/]&%VDSZ0I6H58:8U-I;KWQ.]R:"O"X;>U
M/)65(P+H,/[U4B.%GIJ_7*D&VT*T @DBM4<C-A37!)M5+BW' ;PHKP=,0^$Y
MY V?>DX613\<%QJX"]6](TG,5,'D_O?#X ^@E(H%OUCX::_NO?P&U,HJR].!
MSJOA4-GLC"<BF79^EQNGPF&),(4O^5S0- 4&/!W]J'>. B=5<# $:2>Z@JKI
M8>->#:_5=Z7^;#BW.!\P8[).U51[+*I-/:.@0]N]3!TVG^MPIP)R #;*><X-
M6)/,F1A@ZC WQNRHCH!(75J'1LLP-#*=2FI*]O^K@?6]\7?GCEX\:CWX(1W9
M/X34;>BJQ9_<RB:,L .#2Q*[1\RE:S^%LL;2<*XB1<N:?/^)VG*93A]#S6&
M,JPMO>;S&K55.";C]ICV04MZ;E*9#_84D26%](@J08$UU6H-;Z/94/QFME0C
M QZWC5S&)@4\J@_Z3?LYVC1O24#@K"KXF+ZA"6]06++ "<ES7K^ 2='@>>HY
M:6A[SP^"BN,"FQ /.)TP8$MPD6M%(X( CO!1UHR&$(Q.*H[G8D#F!0H0] YA
MH/,;A/_<Z>[0U[/3U@?-0H$YT6=;1Q!;^O!M<_=T]V7X.GP0?5P>/BN_!_'2
MB'2NEM@Z&D[/NL*&3[7AQIL-?QY=&.]-P9=K)9$J6H#W2V-\<T,*=M_+K_X+
M4$L#!!0    ( !68>U;KWDH$$P0  )D)   9    >&PO=V]R:W-H965T<R]S
M:&5E=#$X+GAM;(U6;6_;-A#^[E]Q4(>B 3SKQ4X6N[:!I&G1?>@0--N*8=@'
M6CI;1"12):DH^?>[HUYB=XZ7+Q+?[KGGGN.17#;:W-L<T<%C62B["G+GJD48
MVC3'4MB)KE#1S%:;4CCJFEUH*X,B\T9E$291=!&60JI@O?1CMV:]U+4KI,);
M [8N2V&>KK'0S2J(@W[@J]SEC@?"];(2.[Q#]T=U:Z@7#BB9+%%9J148W*Z"
MJWAQ/>/U?L&?$AN[UP:.9*/U/7=^S59!Q(2PP-0Q@J#? W[ HF @HO&]PPP&
MEVRXW^[1/_G8*9:-L/A!%]]DYO)5<!E AEM1%^ZK;CYC%\\YXZ6ZL/X+3;MV
M&@60UM;ILC,F!J54[5\\=CKL&5R^9)!T!HGGW3KR+&^$$^NET0T87DUHW/"A
M>FLB)Q4GY<X9FI5DY]8?A5%2[2Q42*G*A<%EZ B79\.TP[AN,9(7,.($OFCE
M<@L?58;9(4!(A 962<_J.CF)>(/I!*;Q&)(H24[@38<HIQYO^NHHX>^KC76&
M-L4_QP)NX6;'X;A0%K82*:X"J@2+Y@&#]=LW\47T_@39V4!V=@K]E2DYC1''
M$S@2])&A1EA(=5G5#C.@]E875*@6WDD%+M>U%2JS8\#'%"NW9R=*72MGSQ:C
MOU"8+O5 B<-R0XLH>2-.'F<P'OU&ITNAK86?X-WY>#Z]@#-NSL;1+(:ST1TC
MVL7H6EB9+N";+R6F\X"&3@;F5U(%>\<6Z&BQCEA1(# ?SZ-S^B;SR]%5EBW@
M1A8UUSG@=DN%#WI[L!Z_U](]@6B$R2R'FZ%#0W5%WC9/%#""H[/-UN8)J/;2
M>RB15,C@[9O+)([?]_^1]X/9RV3)8=]DIP^B0.7^+X1!)]9Y/^I.&Q8MFEQ$
MK7S19#8E]3HJPTPW#K_GV&56^ .0I,BZI?C??4 )+NJ,N+$&S^)QK]*.N$M1
MT"(TJ;3(,ZT\K9)CD(K-.9YV7%?LDR8H7&=DRE[;F5I)9[T\Y-S?*BK%']":
M')5WW8M*%\8]:5,1$O:T>GV\I;0D7$/1N%RTI@/7 R.#A7CFXOU!5ALF[D-%
M(W4V8>TXRKTT[1,$%DQIUT5-<%+UE%XI]P9349.+/;4;71>T"REH$OOGK-O(
M$_A4&UIE2FV0=>XXVE8D :K?,R2!P4H;\CBF2S;->7_[&F2QN0['?('1+N)^
MSTV]M.5\D*DHTKI5K+:]2%:4V-7%!*[VR1ZJU&VI#+9&E\?T.=#E&:,]EY ^
M\7AV,1U'4>0I3^=QVW8'Y\R/,=*.J]!?]L73Y-AY'.Y=ER6:G7\4\"E(!UI[
M<PZCP[OCJKUNGY>WCY8OPNRDHKV'6S*-)K^<!V#:AT#;<;KRE^]&.[K*?3.G
MMQ,:7D#S6TW%U778P? :6_\+4$L#!!0    ( !68>U9O?"U,WP(  ) &   9
M    >&PO=V]R:W-H965T<R]S:&5E=#$Y+GAM;)55VV[;, S]%<(K]A3X%O>Z
M)$ O*[8!!8H66Q^&/2@V$QNU)$^BZ_;O1\F.FPYI@+[8DLQS>$B1]*S3YM&6
MB 3/LE9V'I1$S5D4V;Q$*6RH&U3\9:6-%,1;LXYL8U 4'B3K*(WCHTB*2@6+
MF3^[-8N9;JFN%-X:L*V4PKQ<8*V[>9 $FX.[:EV2.X@6LT:L\1[I9W-K>!>-
M+$4E4=E**S"XF@?GR=E%YNR]P:\*.[NU!A?)4NM'M_E>S(/8"<(:<W(,@E]/
M>(EU[8A8QM^!,QA=.N#V>L-^[6/G6);"XJ6N'ZJ"RGEP$D"!*]'6=*>[;SC$
M<^CX<EU;_X2NMYT>!9"WEK0<P*Q 5JI_B^<A#UN D_@=0#H 4J^[=^157@D2
MBYG1'1AGS6QNX4/U:!97*7<I]V3X:\4X6MR3SA\YNTUK\I*C@\;HM1%R%A&S
M.YLH'Y@N>J;T':8DA1NMJ+3P5158O"6(6-:H+=UHNTCW,EYA'L(TF4 :I^D>
MOND8Z]3S33\8*_P^7UHR7"!_=H7=DV:[25W3G-E&Y#@/N"LLFB<,%I\_)4?Q
MESV2LU%RMH_]0]>SGRE)0W@W 0\(+6^I1,BU)9!(I2Z -'=-KEM%P.T/Q%UO
M6_,"UO-L6.P$6KYQ UU9Y:4G:4R5\U-410_DHQY366",6:,G=^?_D0[^0K@;
M55K0*]"M86E2<B,/A@8WQMA[$=[0^T*B&GET$!2",(2KUE1J[>L(A"K<@LNJ
M0RA8H=*TG1.A6 MKW.TWA&NC)?P0JN49!KXXXT/V:G2[+H%+%N62<]&7;7+J
MO;RR%R X<!*UX\XF<99-3K)TR]^;&%U4!],T3+CSZYJ'V 0$L4 03VAX9 YY
M9MC!<7B:0<../56XJ_2BK2DAD>_ S4*^#Y?"?F",I^.X/>^GS*MY/ZMO^ HK
M9:'&%4/C\/@P -//OWY#NO$S9ZF))YA?EOS+0.,,^/M*:]ILG(/Q)[3X!U!+
M P04    "  5F'M6>.UBKK #  !7"   &0   'AL+W=O<FMS:&5E=',O<VAE
M970R,"YX;6R55FUOVS80_NY?<=":H04TZ]6.G=D&G+3=@J)#D)<-P[ /M'26
MB%*D2U)U\N][I&S5SE)C_6(=R;OGWN\\VRK]R=2(%AX;(<T\J*W=7$21*6IL
MF!FJ#4IZ62O=,$M'745FHY&57J@141K'XZAA7 :+F;^[T8N9:JW@$F\TF+9I
MF'ZZ1*&V\R )]A>WO*JMNX@6LPVK\ [MP^9&TRGJ44K>H#1<2="XG@?+Y.(R
M=_R>X4^.6W- @_-DI=0G=[@NYT'L#$*!A74(C#Y?\ J%<$!DQN<=9M"K=(*'
M]![]O?>=?%DQ@U=*_,5+6\^#20 EKEDK[*W:_HX[?T8.KU#"^%_8=KS9-("B
M-58U.V&RH.&R^[+'71P.!";Q=P32G4#J[>X4>2O?,LL6,ZVVH!TWH3G"N^JE
MR3@N75+NK*973G)V\1NJ2K--S0M@E%3@LDLT16P665+@V*)B!W;9@:7? 4M2
M^*BDK0V\DR66QP 16=:;E^[-NTQ/(K[%8@A9$D(:I^D)O*QW-_-XV8^["_\L
M5\9J*I-_7_*\P\U?QG6M<V$VK,!Y0+UA4'_!8/'S3\DX_O6$U7EO=7X*_4>3
M=!HLR89P*@S7![3&BNF2RPI4JX$F@?;W!E9/4#W',%!0\FD.8$F 8&N$M1+4
M]4[>LI7 (=S7%!Q@C6JE-7NNYTB>UY&^WTI0'9M016>56OMSUQVH@<D2F#%H
MAX._D>E=]0'5#C8K>J?Z&;R^=B"J-<1LWOAR<C_)X \:?(8)-!>#!\DMR=U9
M9M' *\CS,,YR(K(TS.-X<"TM:NEM8 *2/$SB$8S#Z60\N%>6KE[!:!(FV=2)
M3,.,[M_S1]P99T*0:/^K)0W344K?)#P_?ZYCE$YAFN0]?!J>3Q+_'4]RN'-F
M@U44QT.A?5P,;)%BF.9G/D+)Y,Q'SD-YCUW\?2#<LPM&2 DW&_2#4CP-OREX
MUVI*/KWZXI;._O&D@QUE9^$.CAA=7FY8P=>4RUO>P.LM9;4F185H2V)9MJ[%
M!&=>=FDX>W.$FNY0LQ&A.J)'OF*2E>R(>>]8<N#8<2C^GYO',1=*5K\(>MKG
MS96UX<8Z)91!6!_DM"M*=[2^1:AU: ](VG$KPTM.:VY?Y \?R"&7$B'<US&[
M=G'SAN:Y;-=$M)JJE?CO:\8%63M\:79$!\.>LESYE>:,I);JYGY_VV_-9;<L
MOK%W*_<CTQ6G;A:X)M%X>#X*0'=KK#M8M?&K8Z4LE90G:]K\J!T#O:^5LON#
M4]#_EUA\!5!+ P04    "  5F'M6[9]JMH<#  #H!P  &0   'AL+W=O<FMS
M:&5E=',O<VAE970R,2YX;6R-56UOVS80_NY?<5"S8@52RY+EEZ:V@23ML $M
M%K3=BJ+8!UHZ6T0I4B6I*-ZOWQTE.TZ3&OM@F2]W#Y_G[GA<M,9^<R6BA[M*
M:;>,2N_KBSAV>8F5<$-3HZ:=C;&5\#2UV]C5%D41G"H5IZ/1-*Z$U-%J$=9N
M[&IA&J^DQAL+KJDJ87=7J$R[C))HO_!!;DO/"_%J48LM?D3_5WUC:18?4 I9
MH7;2:+"X64:7R<55QO;!X&^)K3L: RM9&_.-)W\4RVC$A%!A[AE!T-\M7J-2
M#$0TOO>8T>%(=CP>[]%_"]I)RUHXO#;JLRQ\N8SF$12X$8WR'TS[._9Z)HR7
M&^7"%]K.-B'CO''>5+TS,:BD[O[%71^'(X?YZ"<.:>^0!M[=08'E&^'%:F%-
M"Y:M"8T'06KP)G)2<U(^>DN[DOS\ZAV2)+>(/6'Q2ISW?E>=7_H3OR2%]T;[
MTL%;76#Q$" F$@<FZ9[)57H2\0WF0Q@GYY".TO0$WOB@;!SPQB>5P=?+M?.6
MDO_/4R([B.QI"+X0%ZX6.2XCJGB']A:CU?-GR73T^@3![$ P.X5^(O0G_9YF
ME61#Z!7_6:,57NHM*%X O*,;3/^M<'!&-:047P>ZS[ VOH0="NL .8M .<!J
MC3;D0>@B_*2CVU<;Z\E ',/GQGD'4N>J*1!<228O/=JJ/S=LGT-;RKR$%BV"
MI(M/!E(H*!K+$+Y$(#QIBB%\HO'&*&H3O"-UUW&ZRQ^$:CK--76MD+J"9Q#I
M<F5<8S'(83#GZ03>!K.!7+@2-@3("I1@ =Z >1@?![]*3;ZF<:36O;@8? D1
M>?LH(@.N3"[/9' 4!#Z#NEUWS,:::@][!J^F,_[.TQ^T=1U0_DM&HB@D:R0U
M#Q7?TVULC_B_F'T.?8A3=4L4MTA0W)OORR%DB"6'Q+^ =#B#\7#RV)&C:QJ*
M)"E%R(83^(6^&7U9#1&E%/H=QYD#?VVJ6NC=\V?S-)F]=C]&&904:ZE(*XNF
MA%$E=0%Y'/\'5<C*6-Z8(SD+PPR2\WYU K-DQ(,I&0X^&:Z*1N^9DYCN\%KL
MJE ^Z?DLS0;OT%'=5G7#%I+LJ+H\)--IC_"8\1EY3B9S>.K:QT?=MT*[#6^,
M@\"@:\2'U<,S=MEU[WOS[@U\+^Q6:D<$-N0Z&LXF$=CN7>DFWM2AE]/-I9<A
M#$MZBM&R >UOC/'["1]P>-Q7_P%02P,$%     @ %9A[5FEPIXHV P  C0<
M !D   !X;"]W;W)K<VAE971S+W-H965T,C(N>&ULI57!CMLV$+W[*P9J4=B
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
M@V;$$E"4ECL8C12FTUC=H:#T/<^/Z J)*XJ* QPXV\O.(,W&>$?5[W")0ZJ
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
MB&4:F--Z]\9U;V7 *10N?)44CKLYS9WWN@=P2$E1BT%P015F\M8-A^!0\I%
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
M4181>W*!OS6N'0/V9TK9]8<SL/G_&_X-4$L#!!0    ( !68>U8CUKF@GP(
M '\%   9    >&PO=V]R:W-H965T<R]S:&5E=#(W+GAM;(U444_;,!!^[Z\X
M!80 !9*X 4II*[4P-!Z8*F#C8=J#FUP3B\3.;(>R?[]S4D(GE6HOL<^^[[OO
M<WP>K91^,3FBA;>RD&;LY=96PR P28XE-Z>J0DD[2Z5+;BG466 JC3QM0&41
ML# \#THNI#<9-6MS/1FIVA9"XER#J<N2ZS\S+-1J[$7>^\*#R'+K%H+)J.(9
M/J+]7LTU14''DHH2I1%*@L;EV)M&PUGL\IN$'P)79F,.SLE"J1<7W*5C+W2"
ML,#$.@9.PRM>8U$X(I+Q>\WI=24=<'/^SG[;>"<O"V[P6A7/(K7YV!MXD.*2
MUX5]4*NON/9SYO@259CF"ZLVE_4]2&IC5;D&DX)2R';D;^MSV  ,PD\ ; U@
MC>ZV4*/RAEL^&6FU NVRB<U-&JL-FL0)Z7[*H]6T*PAG)W?R%:556J"!PR>^
M*- <C0)+S&X_2-8LLY:%?<(2,;A7TN8&OL@4TW\) I+4Z6+ONF9L)^,-)J?0
MCWQ@(6,[^/J=SW[#U_\/GS^G"V,UW8=?VYRV//%V'M<C0U/Q!,<>-8%!_8K>
MY& O.@^O=JB,.Y7Q+O9-E=ND[08_Y0B)*BLEB<. 6H+8,,TU#GMTJE@N4+N3
M[1W>2;"YJ@V7J3EJ#MI](CCN/? 573*+6O""H#*%JM9)3K<__2@!%==49Q\&
M_F 0TWCFQY>7O6?JPA,A3RJM$C0&#O8&+(JN((IZMT(*NJHI9$JE!OI^%,?
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
MQ".J;53MQ,C:-8>M--AJW+#$W@[*.N!Z+J5YFM@-^G^+Y ]02P,$%     @
M%9A[5M'KW^*% @  @P4  !D   !X;"]W;W)K<VAE971S+W-H965T,S N>&UL
ME91=;],P%(;O\RNL,"$F54N:I$U7VDKM!F(2$]4VX )QX20GC37'#K:SCG_/
ML=-F1725N(F_SGG\'CNO9UNI'G4%8,ASS86>^Y4QS30(=%Y!3?6%;$#@2BE5
M30T.U2;0C0):N*2:!U$8CH.:,N$O9FYNK18SV1K.!*P5T6U=4_5[!5QNY_[0
MWT_<L4UE[$2PF#5T _=@OC9KA:.@IQ2L!J&9%$1!.?>7P^DJL?$NX!N#K3[H
M$UM))N6C'=P4<S^T@H!#;BR!8O,$5\"Y!:&,7SNFWV]I$P_[>_I'5SO6DE$-
M5Y)_9X6IYO[$)P64M.7F3FX_P:Z>D>7EDFOW)=LN-L8=\U8;6>^2<5PST;7T
M>7<.!PF3\)6$:)<0.=W=1D[E-35T,5-R2Y2-1IKMN%)=-HICPE[*O5&XRC#/
M+)9YKEHH"&<T8YP9!IJ\>Z 9!WT^"PSN8.."?$=;=;3H%=HP(K=2F$J3#Z*
MXF] @-)Z?=%>WRHZ2;R&_(+$PP&)PB@ZP8O[>F/'B_^CWA_+3!N%_\?/8Q5W
MO.0XSWIFJAN:P]Q'4VA03^ OWKX9CL/W)]0FO=KD%+U7^_E%[3&))R'')3Y4
M0')9-U* ,)K($OWQ[\E0!5,/KP#J#)2]!N_=C2"FDJVFHM#G[E;L9^C=4TZ5
MRQ&%(Z-QJ>FLRZE!\!F)!FF2N'8R2KP'^HSAHS@DZ:6W5K($;:U.^0XA-#J+
MB0V)TR&))B/OBZE011)'9)R.O3.2#,(T15P\F%PFY-AQ!P?&J$%MG/TULEMA
M.H_TL_T+L^R,]1+>/4^W5&V8T(1#B:GA13KRB>HLWPV,;)S-,FG0M*Y;X2L)
MR@;@>BFEV0_L!OV[N_@#4$L#!!0    ( !68>U9+.N2_ @4  $@,   9
M>&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM;*57VW+;-A!]YU?L*)=1/ PE0J)$
M.;9FY,1M\Y#&8SOI=#I]@,B5Q#%)*  HQ?WZ[H(4+3N*FK8O(BZ+@[.+L\#J
M;*OTG5DA6OA:Y*4Y[ZRL79_V>B9982%-H-98TLQ"Z4):ZNIESZPURM0M*O*>
MZ/='O4)F96=ZYL:N]/1,53;/2KS28*JBD/K^ G.U/>^$G=W =;9<61[H3<_6
M<HDW:#^MKS3U>BU*FA58FDR5H'%QWIF%IQ<CMG<&GS/<FKTVL"=SI>ZX\SX]
M[_29$.:86$:0]-G@6\QS!B(:7QK,3KLE+]QO[]!_<KZ3+W-I\*W*?\M2NSKO
MQ!U(<2&KW%ZK[2_8^!,Q7J)RXWYA6]M&_0XDE;&J:!83@R(KZZ_\VL1A;T'\
MO06B62 <[WHCQ_*=M')ZIM46-%L3&C><JVXUD<M*/I0;JVDVHW5V>F-5<@=9
MF6#)X8%U+DL#W5LYS]&\.NM9VH,M>TF#=U'CB>_@A0(^J-*N#%R6*::/ 7I$
MKF4H=@POQ%'$=Y@$, A]$'TACN -6H\'#F_PKSS^8S8W5I-&_CSD<XTX/(S(
M>7-JUC+!\PXEAD&]P<[TY;-PU']SA.^PY3L\ACZ=&4J8-4O8P">#*5&'CZX/
MGV5>2==Z*_.DREW;''+@^!:W*P3+)PYSSE+:(<T2:=& I9D[O >Y1Z++R01;
MIW=,7\L-:DI?SHW,O(*JH<@K54UST]),]F@"W2B-A8&EEJ6M%_(Q@RQ3;H2N
M(2'-#.6"NPC4 E2EH4"[4JG*U?+> :6X(>KKK%P"RF3%9LQ@G_<^LP=*A4HQ
M/_5^1ZEKR0()#HLY:A:=Y]@P$^_RZYIN$IIOO+*H"^@2WCTM)<?'00BC8/)@
MMU'L:9[9>XC"8  O(.H'$;SPKC-S]WJA$8D-H:"QH"G:( )!1B'_>N^R398B
M.7^?89Y"/^C3E/L](JFHE51T]+SK%&A$-.-[D4@>DLUQF,LO%3LGMU*G]?7*
MW2;"]"I$T%B\;Y/MBI+-G6EM$@Z_8Y*9YIG(_J)(.E6>>ONT#5Q3W'3F(EU/
M?"HS:[Q?*W=V=/XW*TFQA5FCSRLRQA-XF'?V3Z9/O(^5-988LI*D?22&6I&A
M+T83?Q!%\!PF01A#&$6^$-P-^X&(O9\;+8=QZ(?]/L1!.()03/RQZXQCD@CJ
M)&,Y=L.Q']'P*Y+.N _=X=B?#$+J,I3PZ.%98,9@W>'$%Q$;3H)!#%TA""YN
M#,<LNDRSF1C[8V<6!U$(+Y_%(@S?[+[_Y)P@Y\@Q?](X1QN(<.B+>.2ZY-M)
MF_>PRWMLG($U1Q#6!&<X\M[) 6.7YV#<>3VQ/Z+K4:OKT8\(<L:"-/"9!,);
MD]K:G+3*#1_2^G%HOB(7*B<=<NQ:;1J2>UT9N1)C3F4/X%Y:&+JL'D)N5Q1T
M<A4V#]3046-B/%@//0)H%S6!=O?TH<,[]7[8?WAL><M;S&B+RX<MO&;N2?K,
MEDN-2[ZMWI>4?E2<)>X90LI'K@'9S5NZ&>GP_R_ DWS_1IK/08@A1'0G3L:A
M'X_J"3'@SP &P=C;NR)JR54NY<-AY(_B<9L=$\IJ$7R3+=]DSW\4?_M")E08
M<8E1R9SJV9VS[AW9/2.'DJ"W5]T5J)>NAC6$5I6V+O3:T;9,GM75X8-Y76-_
MD'I)(8<<%[2T'XSI@M=UW5IWK%J[6G&N+%6>KKFB4A\U&]#\0BF[Z_ &[9^'
MZ=]02P,$%     @ %9A[5C].*)MQ!P  6Q,  !D   !X;"]W;W)K<VAE971S
M+W-H965T,S(N>&ULE5C;;N,X$GWW5Q">=",-&+8ERY*=3@+D,KT;8'HG2-+3
M6"SV@99HFVB)])!4G.S7[RE*ENV)HNU]L26J>*I8=>HBG6^U^6'70CCV4N3*
M7O37SFW.1B.;KD7![5!OA,*3I38%=[@UJY'=&,$SOZG(1^%X'(\*+E7_\MRO
MW9O+<UVZ7"IQ;Y@MBX*;UVN1Z^U%/^CO%A[D:NUH871YON$K\2C<M\V]P=VH
M0<ED(9256C$CEA?]J^#L>D;R7N /*;;VX)K1219:_Z";N^RB/R:#1"Y21P@<
M?\_B1N0Y <&,/VO,?J.2-AY>[]"_^+/C+ MNQ8W.O\O,K2_ZLS[+Q)*7N7O0
MV[^+^CQ3PDMU;OTOVU:R4=)G:6F=+NK-L*"0JOKG+[4?#C;,QN]L".L-H;>[
M4N2MO.6.7YX;O66&I(%&%_ZH?C>,DXJ"\N@,GDKL<Y=W*M6%8(Z_",M.G_@B
M%_;3^<@!F@1&:0US7<&$[\ $(?NJE5M;]JO*1'8,,()-C6'ASK#KL!/Q5J1#
M-@D&+!R'80?>I#GHQ.--?N:@_[I:6&? B'^W';4"BMJ!*$O.[(:GXJ*/-+#"
M/(O^Y<=?@GC\N</,J#$SZD*_O-'%1BNAG&5ZR6JCG_@+NQ9*+*5KL[<;\6DM
M6'J$ZK B&W>P187,N!&,6[;4.3+5GO40 5$LA*$H]$[O%/;ITG*5V4\^*/03
M]&Y*8P!\UOLB,F%XSDY8$,WQ&\:]1\>=8$$P9M.@AR1"BBAV.ILP /2")&;)
M'%J6 @C9'N T&,S#"#*GX6 \3=BG&N<T#!):C4,L[= ^_C(+@^ S'F(1&X(H
MJ'8&(2YZ=V^/>>(5Q%.(G7@5$;9V1&[:1&[:Z>?=07RTKJP5<#:<Q7Z3?"%S
MZ:2P;<'K!&TG6Z-)'G*:&VD%6QI=,"<0;H,:RS*YA*Q0*006PFV%4#[\WB'<
M2L\'OC<VWQOK[R$K#8HOX!P4\D*71")9H=QH974N,T[/ODC%52H10!^N@M@V
M9+^7AHID92]I?4?9%E9ZFM(ILAU+*RY*M?I9-MZ^5;4GED*/0S<SW &1Y1J/
M+1%U$,X3HNU@GLP:8K4*Q^!L'$8U(5M%B/PU*6$-@@:7^/ZS8^ID'/=N^$8Z
MGLO_P-*'C[S8?+YEX@6-UB,,DO&LP;A3S_"D1BSK^,.*:,:28+P_K!&0*04#
M]V'<=VX,5Z[9P) V80B;=?K#NQAJ*I-JE2R)YTC%N/<[?&[0*%-3 O5(-(2'
M)^-9;V=M"KU(IA2Z7C$:;+G)8'@XF;'Y.*B!_DJFY@!1/&'A=-S[FX'/6NDQ
M&X3AC$T'\V#>^X/G964$)S: 9*@%\32F/$\F*":]?R 0;2C)8)J$0 EF\3$S
M#BP[.XY2,(\;UU>G0#RCR5L5AX<+HRG)/&E7LZS-F!.8,PF):# HFK".DA,W
M)2?N+#E[SUPUGL%-2R5JJSR=V.V5Y\K7B\-4K'*/HDOY-T >LS5'H6 G%*%=
MCGJ!$PK6;F5 ;-@(/Y/EKP."?7X;9TO'T2@A;U/MB'HH-$^'Y0)^QR!33YK(
M,NNKB9\ I4^,5)O,%U#_H$4S*:9'+9$\Z_U3<%,-.NSGRM(USPET@!J\DDJ1
MA3@PSB-U1L2 8TY8/)WW'LN%GTM@BX69N>!4#9T^[-<;HY^E]1*G"77$'5^O
M,J2D7T_7W*S>W]C4HB3:FR94=F04Q:\RK8.I2</4I).I5#!+7\5@TJ_H23[P
MGJ /5$H?$!$TC[S*PC:V=N/?OM/GO@T?A\PVRI=U)SAPBB'U1$^BF6@L>R-!
MPY'B^2N5[ 6]R[Q/@WW<=YUG;X$'"X/AF'VH_WKW]_=@-%>@KUE!MQ)@=Q.A
M8?37FAL-)U@.ZH+.?>D5+RGM.IQS=@CCX:3N5X?CPJ!*J66+2Z@%#0/L V]+
M*[TYA>!Y5<31C(1Q>-NC!K\?O\9#&L"^2IOB!8LK@20@*A6<IDXF,0_80V&J
MVM\0+8]4D5/;FKQX3,,9_B(_^]$I]<:G9TI4!7XM& SGE2!Z06N;\",,)2ZU
M-#H!>1S;R-:JNF,S#8S0U=O3LHEZ&$'#!S:90,.'CC28-6DPZZ3I-T6E9Z5\
MXS^8ZEOK<R=4>WW^7E7?DP S[7'M#:)HOT+3E>]5*]^ RT.K#BB$@+O.8G]8
MPH'.W8#))=N#H1WH,L_8DC]C'%U B'L?^]1\/]? "*Z0K*4KD75504*%_UYE
MH=+.DU[XT15R-/PXZ_5C9B%].DV1S%OIUG6!5^(%2K<BA[:B>D\]$$]YB2&(
M,XNY3RXE2.:H@JJ5V#6(REO5]$MJW_78D%U1[RES;KP?]C5M-])6+M\-TEU8
MY'W:L>\95?XUT_$KU1^,\/__2]O_Z$=$%OQ"\.DH,QW_@;J:E<:W6'JOK%[^
M=CO#F$5)[S>^L3XX5=7SE[DL,/#6:8O)CE[1*+O?[3[$X,J0MK0;'7SP* 1:
M'7W6L11.Y:IO'\UJ\^7HJOI@LA>O/CM]1:>4L"H72VP=#Q.\D)GJ4TYUX_3&
M?SY9:.=TX2_7@J-HD@">+[5VNQM2T'Q/N_PO4$L#!!0    ( !68>U;8;J4&
M\@(  (4&   9    >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;)55VV[:0!!]
MYRM&3A4%">$+EP(!)$A:M0^IHJ1M5%5]6.PQMF+O.KMKG/Q]9]?&)1*A[8N]
MEYDSY\QXQO-*R$>5(&IXSC.N%DZB=3%S714FF#/5%P5RNHF%S)FFK=RZJI#(
M(NN49V[@>6,W9REWEG-[=BN7<U'J+.5X*T&5><[DRQHS42T<W]D?W*7;1)L#
M=SDOV!;O47\K;B7MW!8E2G/D*A4<),8+9^7/UD-C;PV^IUBI@S48)1LA'LWF
M<[1P/$,(,PRU06#TVN$59ID!(AI/#:;3AC2.A^L]^D>KG;1LF,(KD3VDD4X6
MSL2!"&-69OI.5)^PT3,R>*'(E'U"5=L./ ?"4FF1-\[$($]Y_6;/31X.'"9O
M.02-0V!YUX$LRVNFV7(N10726!.:65BIUIO(I=P4Y5Y+NDW)3R\_,,E3OE50
M()4J81+AXBO;9*BZ<U=3 &/FA@W8N@8+W@#S [@17"<*/O (H]< +C%KZ05[
M>NO@).(UAGT8^#T(O" X@3=HY0XLWN#?Y?Y<;926]'7\.B:XAAL>AS,=,U,%
M"W'A4$LHE#MTEN=G_MB[/$%VV)(=GD)_3?;>D#W&\#\P:L$54Q"*O"@U1D#K
M6&34F@HN4@XZ$:5B/%(]P.<0"WW@QW)1<JVZL\X/9+*I,5"%,-^0$56I8ZID
M2N5WOM \R812\ XN1KWI8 Q=LQSVO*$/W8Y5HV:=-5-I.(,'VSR&S@XES0+#
M+Z>>M8$5T#!1FEB1$)CVIMZ(GL%TTEE%T0RNTZPTG0T8Q]3J(.)7]OA4IOH%
M6,5DI(S<"#5*ZB2*MGDAP0B:IIDJY0M0MX6/D"-E(8+SLTG@^Y?[=\?&P>AM
MLA1POS1!=RQ#KO\FH<V3R?.AZB8W)FE>?^S5Z?/ZPP%EKZ'2WC3GQSXY]V T
MY"BW=@":^E,IZRG1GK8S=E6/EC_F]8"^87*;<@49QN3J]=^/')#UT*LW6A1V
MT&R$IK%EEPG])U : [J/A=#[C0G0_GF6OP%02P,$%     @ %9A[5G2WQCWX
M @  A08  !D   !X;"]W;W)K<VAE971S+W-H965T,S0N>&ULG55+;]LP#+[G
M5Q!>,;2 $3_BO+HD0-JN6PX=BCXV#,,.BLW80FW)DY2F_?>CY-3+NC2'72R)
M(C]^?(B>;*1ZT 6B@:>J%'KJ%<;4IT&@TP(KIKNR1D$W*ZDJ9NBH\D#7"EGF
MC*HRB,-P$%2,"V\V<;)K-9O(M2FYP&L%>EU53#V?82DW4R_R7@0W/"^,%02S
M2<URO$5S7U\K.@4M2L8K%)I+ 0I74V\>G9XE5M\I?.6XT3M[L)$LI7RPAT4V
M]4)+"$M,C45@M#SB.9:E!2(:O[:87NO2&N[N7] O7>P4RY)I/)?E-YZ98NJ-
M/,APQ=:EN9&;S[B-IV_Q4EEJ]X5-HYL,/$C7VLAJ:TP,*BZ:E3UM\[!C, K?
M,(BW!K'CW3AR+"^88;.)DAM05IO0[,:%ZJR)'!>V*+=&T2TG.S/[A#)7K"YX
M"HR*"EPTA;89.[YCRQ+UR20PY,GJ!^D6]:Q!C=] C6*XDL(4&CZ*#+._ 0*B
MV/*,7WB>Q0<1+S#M0B_R(0[C^ !>KXV[Y_!Z_Q'WC_E2&T7]\G-?Y UNLA_7
MOJ%37;,4IQX]$HWJ$;W9^W?1(/QP@'72LDX.H<^^T"N]95038"*#2_Z$&<RU
M1J-A^0P[,<TIIGWD#\+O)[_8R8S"G*F,BQSD6@%-!N7DSGO^.J,:4NH!F@M$
MD@LP!<)*EC0%K+VQK=6%NX+< *OD6E ,6ZW72$[7;MW[RT V:J5,&U9RY<[-
M:T'E<L-L5KJ=[\C4M@F!6@BK)=U3&W6.%Q9$KC4IZQ/75?83=6R*M4WQ:>=>
M<$-VMX89RO@1)(D?]A+:]&(_"</.0AA4PG%@)42)'X5]&/CCT:!S)PV)CJ _
M\J/>V)J,_1[)FY(Y<MH'@>9?+[$?]V-:(W\X?.VC'X]A'"4M?.P/1Y%;!Z,$
M]C58L#,:*#>Y&X"V,I3P9DJTTG;&SIO1\D>]&=!73.6<:EWBBDS#[K#O@6J&
M7G,PLG:#9BD-%<)M"_I/H+(*=+^2TKP<K(/VSS/[#5!+ P04    "  5F'M6
M"('K"6X#  "4"   &0   'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6R-5FUO
MVD@0_LZO&+DOND@1Q@8,30$I2:^Z2HDN2G-7554_+/8 J^Z+;W<=ROWZFUT;
M0QIBW1>S+S////.VPVRKS0^[073P4PIEY]'&N?(BCFV^0<EL7Y>HZ&:EC62.
MMF8=V](@*X*2%'$Z&&2Q9%Q%BUDXNS.+F:Z<X KO#-A*2F9V5RCT=AXET?[@
MGJ\WSA_$BUG)UO@9W5_EG:%=W*(47**R7"LPN)I'E\G%5>;E@\#?'+?V: W>
MDZ76/_SF4S&/!IX0"LR=1V#T\XC7*(0'(AK_-)A1:](K'J_WZ!^#[^3+DEF\
MUN(++]QF'DTC*'#%*N'N]?8/;/P9>[Q<"QN^L*UE1V0QKZS3LE&FO>2J_F4_
MFS@<*4P'+RBDC4(:>->& LL/S+'%S.@M&"]-:'X17 W:1(XKGY3/SM M)SVW
MN$%RR<)O#VPIT)[-8D>@_BK.&X"K&B!] 2!)X58KM['PNRJP> H0$YN64KJG
M=)5V(G[ O _#Y!S209IVX U;%X<!;]CMXK?+I76&JN#[*2=KB-%I"-\9%[9D
M.<XC*GV+YA&CQ=M7239XWT%PU!(<=:$OKIG=P$=J#PO49?!GB88YKM90,S]%
MMQ/P--V'#1*\(#,>FJNZH>O>"E+*6>K-LA1(3>>8@(+;7&A;&0R\' %8QURX
M!KV"W/->!=X&!5T4X#3HEKYH:HLKTM659:JP9Q>]K\A,4RU N4:Y1./SW?/Y
M]DE/>H<0!!OTF-1F5D;+/>QK>)=-_'>:0D<2QFT2QIU)N"P*[J-!?G\ZBLW]
MP;&7L]&-_#3P]>O'_R4/V,'DTW0<8EF9QMW_%;8OX0VB>_9(\5LC0?EWN<T%
M.#0RY&/GP<X@[4]@V!\_5_2IUQ6EF=* ,.J/X0U]1_"F(])9&^FL,QZWS%6&
MNYTOH5]J'6XX6W)!43D=Z$[@E\M>'EGT57RM9<G4[NVK:9I,WMM?2Q;$@04P
MJGYFFP0^+^;C3(0'RZ=CZ,MR$I8C2,Z;TS%,DH%?9"38>]"^Q2JUCS0%OS9>
MLIT,O9B>3])1[P:M!2[+RDMPDB//'"19UB \9_R:-,?CZ<FFB(\FA42S#O/0
M0F!0#XWVM!VYE_6D.8C7\_J6F357E@BL2'70GU 7F'H&UANGRS!WEMK1% O+
M#?UM0.,%Z'ZEM=MOO('VC\CB/U!+ P04    "  5F'M6AYQ@04 #  !:!P
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
ME>)I<;@&&H,P#?3])>?JY<1T4.]J3KX#4$L#!!0    ( !68>U9?<70B,0(
M ,4$   9    >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM;'U438_3,!#]*Y:1
M$$BKIDF[75222.T6!(=%U5;  7%PDTEBK6,'C],N_QY_I*&(;B^)QS/SYCU[
MQNE1Z2=L  QY;H7$C#;&=,LHPJ*!EN%$=2"MIU*Z9<::NHZPT\!*G]2**)E.
M%U'+N*1YZO>V.D]5;P27L-4$^[9E^O<:A#IF-*:GC4=>-\9M1'G:L1IV8+YV
M6VVM:$0I>0L2N9)$0Y715;Q<SUV\#_C&X8AG:^*4[)5Z<L;G,J-31P@$%,8A
M,/L[P#T(X8 LC5\#)AU+NL3S]0G]H]=NM>P9PKT2WWEIFHR^HZ2$BO7"/*KC
M)QCTW#J\0@GT7W(,L7<))46/1K5#LF70<AG^['DXA[.$Y*6$9$A(/.]0R+/<
M,,/R5*LCT2[:HKF%E^JS+3DNW:7LC+9>;O-,O@N7051%D->25[Q@TMC#*E0O
M#9<UZ93@!0>\(3NH[748>Q>=TM[W9@.&<8%OT\A8,@XR*H;"ZU X>:%PG) '
M)4V#Y(,LH?P7(+(J1BG)2<HZN8JX@6)"9O$-2:9)<B)[!7<V'M',X\Y>.J+_
M9/]8[=%HVU _+^D.://+:&[(EMBQ C)JIPA!'X#FKU_%B^G[*USG(]?Y-?3\
M2]_N0;O;W/=H?8@$ WV\1#6 +3R8&]]#'J?1X;Q^=-9:+>C:#Q 2WQVAR\;=
M<497H37_AH<!?V"ZYA*)@,JF3B=WMY3H,#3!,*KSC;I7QK:]7S;VG0'M JR_
M4LJ<#%=@?+GR/U!+ P04    "  5F'M61YY_)N$"  #6!P  &0   'AL+W=O
M<FMS:&5E=',O<VAE970T,"YX;6RM54UOVS ,_2N"5PP=T-8?^>JZQ$#2;-@.
M!8IFW0[##HI-QT)ER9/DI/OWHV3'2Q,GZV$76Y+)I_=(FAQOI'K2.8 ASP47
M>N+EQI0WOJ^3' JJKV0) K]D4A74X%:M?%TJH*ES*K@?!<'0+R@37CQV9_<J
M'LO*<";@7A%=%055OV? Y6;BA=[VX(&M<F,/_'A<TA4LP#R6]PIW?HN2L@*$
M9E(0!=G$FX8WMR-K[PR^,=CHG36Q2I92/MG-EW3B!980<$B,1:#X6L,M<&Z!
MD,:O!M-KK[2.N^LM^B>G';4LJ89;R;^SU.03[]HC*62TXN9!;CY#HV=@\1+)
MM7N236,;>"2IM)%%XXP,"B;J-WUNXK#C$ Z/.$2-0[3OT#_BT&L<>DYHS<S)
MFE-#X[&2&Z*L-:+9A8N-\T8U3-@L+HS"KPS]3+RHLT=D1C1;"9:QA J#T4UD
M)0P3*U)*SA(&^H),.>:<B@0(5@])9;4T6<6WMIJ<S\%0QO4[<DD>%W-R?O:.
MG!$FR-=<5IJ*5(]]@YSMS7[2\)O5_*(C_,*(W$EA<DT^BA32EP ^BFT51UO%
ML^@DXAR2*](++T@41%$'H=O7NX<GZ/3:!/0<7N\(WK^"^N-!<DZP9#=4I3^[
M ECC][OQ;1>XT25-8.+A;ZY!K<&+W[X)A\&'+O'_">Q%*/IM*/JGT.,9Y380
M%V0)*R:$+3XLRQ(4DVF7\!IMX-!LMUK'4?A^[*]W]7381$%K\X+FH*4Y.$ES
MFJ;,MB!-DIRJ%:3$2))(C<G"&B?PC!U60V>MU\##'39A/]AC?&ASA.^PY3L\
MR7<.:>5Z9B>EX<%UE]=[C#I,PFY*HY;2Z'69!@S8R1R/#O+7&X1[_ YM=NN@
M)NCOM,@",&MV<F &[4]6]X[VM!U.4]>3]\YG.+3J&?,7IIYX=U@,#*N"0X:0
MP=4(&:EZBM0;(TO7B)?28%MWRQP'+RAK@-\S*<UV8R]H1WG\!U!+ P04
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
MG<VKN]'K#%*-;_>M(CL\?EG9UPJU<[#GA5)T,%R"X?U+_P!02P,$%     @
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
MKHU7>*_8/<(\=W!EH1D*5(M03:":1+48U12JZ8W6Z>XFX^EXMPGL&68[$^]
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
MKK686]J!FMW\'19+HGM%(=9B7K.GQYS(-LC90O'4;DKG7.DMKCU=Z3\5($R
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
M:*QH=3/#-P>D"<#YM1#ZK6/*6O>*Q?\ 4$L#!!0    ( !68>U;'5&1?* 0
M /85   9    >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;+5878^;.!3]*Q9;
MK5II9HA- F0VB33-M&JECCKJM-V':A\<<!*K@*EMDNG^^K6!@9 0-]EQ7Q(^
M[CV^QSZ&PYUL&?\NUH1(\)@FF9@Z:RGS:]<5T9JD6%RQG&3JSI+Q%$MURE>N
MR#G!<9F4)BX:#'PWQ31S9I/RVCV?35@A$YJ1>PY$D::8_WQ-$K:=.M!YNO")
MKM927W!GDQROR .17_)[KL[<!B6F*<D$91G@9#EU;N#U''DZH8SX2LE6[!P#
M367!V'=]\CZ>.@-=$4E()#4$5G\;,B=)HI%4'3]J4*<94R?N'C^AORW)*S(+
M+,B<)7_36*ZG3NB F"QQD<A/;/N.U(1&&B]BB2A_P;:*'04.B HA65HGJPI2
MFE7_^+&>B)T$.#R2@.H$=&J"5R>4,^=6E96T;K'$LPEG6\!UM$+3!^7<E-F*
M#<WT,CY(KNY2E2=G;^DCB0$6@DAQ 3*EFY>W1&*:B%?@$GQYN 4O7[P"+P#-
MP.<U*P3.8C%QI1I9Y[M1/<KK:A1T9)1;$ET!#UX -$"H)WU^>CKLIKN*;T,:
M-:11B>>=0!I\NUD(R96<_NGC50$-^X'T'KL6.8[(U%&;2!"^(<[LSS^@/_BK
MCZ4EL YGK^'LF= [G/N(5MFC,EOO_<T,CL>!6JS-+H.>J%#%-5&=TH9-:4-C
M:1^($-?@)HJ*M$BP5&7&1,U 1'&UTS-5=\JXI/^6%_JJKP;P=^JZA($_\O?*
M[POS \_OKW_4U#\Z>6K+/=17X>A@:!2$<*^^GB _'/97YS?5^<;J/C.F+JTN
MP!V.UNH>_UG.Z)L?!<W5\UB";W<D71#>*W\C]+GRMP36F86@F87 UI8/;'*V
M!-;A'#:<PV=M^?! ;7XX&N])LB?('Q^1Y+@I;&PNK. 9E04GI1(_+I<T(B<*
MT@A\[N)8 NO, 1RT;]Z!+4G62)9HVT+K\MYQ'/!9LJS3_<Y+)MQ_$_5%^?Z@
M7YBP=0;0^!*>S5F:%Y)P\,"6<HMKB9ZF33/TV:OT.]P";.T"]*RIT^@\SN9M
M":W+N_4BT&Q&?JG.0P\1>L-P7YV'4?XX\(ZHLS4:T.PT/A#UQ;)F20S>ISEG
M&Z(U*<RB-"*>O3B6T+K\6RL#?6NBM&I=;*%U>;?F!1I]PJ]%&1P:QS#T]D79
M%[5C\;O%M2X#GF(S;FK[^^8Q2HI8&4XP9YE:GZ+Z7*?9Y3UGD7+Z9K4:ASI[
MU2RA=2>F=3EP;$VM5GV-+;3NQW5K;)#10)SV/51C=,3HP?T/MIXH./2//$=1
M:T&0V8+\'VF:(<]N!5A"ZT[ 3@/$7@?$;@OD=[@:U+H:]+PN"#IL< S]T;XH
M>[H@",$]4;H[33G=$;W#?$4S 1*R5&F#JT#E\ZK)6)U(EI=]N@63DJ7EX9K@
MF' =H.XO&9-/)[KUU[1Z9_\!4$L#!!0    ( !68>U9\,]VXO@,  *X0   9
M    >&PO=V]R:W-H965T<R]S:&5E=#4R+GAM;+686X^;.A#'OXK%J:I6ZBZ8
M)(3L29#V<GIY6"GJ;D\?JO/@P"2@@IW:9K/MIS\V$ B$.,TJ?=EPF?G[-X/M
M\>QTP_AW$0-(])RE5,RL6,KUE6V+,(:,B$NV!JK>+!G/B%2W?&6+-0<2%4Y9
M:KN.X]D92:@53(MG<QY,62[3A,*<(Y%G&>$_;R!EFYF%K>V#S\DJEOJ!'4S7
M9 4/(+^LYUS=V;5*E&1 1<(HXK"<6=?XZA;[VJ&P^#>!C=BY1CJ4!6/?]<VG
M:&8YF@A2"*66(.KG"6XA3;62XOA1B5KUF-IQ]WJK_KX(7@6S( )N6?HUB60\
MLWP+1; D>2H_L\U'J (::;V0I:+XBS:E[4@9A[F0+*N<%4&6T/*7/%>)V''
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
M(X=K3_ R9I-PV4/EM*5RZJ72N.ZWRIXY=-D=6&:]#O/B[.FP4<MR=/  CX[
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
M]5M\<8<5UZ_-Q<4MYU%UQ^%WTO.:<SET=MKSJQMSC9\@GVZX&]JYS=>&.#M
MF7UAT3X]4O@2,18%Z<<===<T%@WX_4T4L>,7,4!QC'7Y-U!+ P04    "  5
MF'M6$YN6)4L%   ?(0  &0   'AL+W=O<FMS:&5E=',O<VAE970V,"YX;6RU
M6EUOHS@4_2L6.QIUI$G!#B%))XG4AAG-2-M5U<[L/HSVP0DF80=PUG::]M^O
M^0@$,&Y3>5_:0.X]^!RX]KDXLP-EO_B6$ &>DCCE<VLKQ.[*MOEZ2Q+,+^F.
MI/*;D+($"WG(-C;?,8*#/"F);>0XGIW@*+46L_S<'5O,Z%[$44KN&.#[),'L
M^8;$]#"WH'4\<1]MMB([82]F.[PA#T3\V-TQ>617*$&4D)1'- 6,A'/K&E[Y
M:)(EY!%_1N3 3SZ#C,J*TE_9P;=@;CG9B$A,UB*#P/+?(UF2.,Z0Y#C^+4&M
MZII9XNGG(_J7G+PDL\*<+&G\5Q2([=R:6" @(=['XIX>OI*2T"C#6].8YW_!
MH8QU++#><T&3,EF.((G2XC]^*H4X29 XZ@14)J!V@M>3,"P3ANT$MR?!+1/<
M7)F"2JZ#CP5>S!@] )9%2[3L0RYFGBWI1VEVWQ\$D]]&,D\LOJ5KFA @\!/A
M'\&2)CN:DE1P0$,05=^!%4E)& EPX1.!HYA_  /PX\$'%^\^@'<R$'S?TCW'
M:<!GMI##RL#M=3F$FV((J&<(0W!+4['EX',:D$"1O]3G0Z0!L*4>E2CH*,H-
MTB+Z9'T)AO C0 Z"J@&]/ATITOTW7[W!9EC=XF&.-^S!6^X9D[<4_+Q><<%D
MH?VMND<%AJO&R&:?*[[#:S*WY/3""7LDUN+];]!S/JGT,0GF&P)K:.=6VKDZ
M],47$A"&8Y5@VL1S!2O 1CE8-E4_+J [G=F/ISIT8Y!7A338C2IV(RV[!X$%
M47'3IIW+K0#S3KE!I\6M&S.":FY>Q<W3WSG*Y)R?JMAI$\]EYW5&/I@,6^RZ
M,4A-;ER1&VO)G<[:<I7(ZUO%5(MR+M-Q]SZ.O1;3;LQXJJ8ZJ:A.M+.73T(B
M^04O3%\3DTQ-@OF&P!KB32OQIF^=OK2)YPHV[18!G"*W]7 HHI S&JN?#^C4
M#L9YVRRFSSN78XG6'#X<MSBJHKR>:H<G)@V^=3+39YY-$G:&WYZJ%2&#/H*H
M)HA>/Z$%9<DKZ6IQSJ:+5/?4A6W*RC#4LT+!VIA!K7<Y87TTV$K*P\["/W!A
M:XU9JJ+@U!NUJ2C"D./VW<#:)T&]4?H<AB1OX7(VK*\BC9JF$BTKN?IIO40=
MXZ2.&PY[W!.L[1/4^Z=R>@5<SD![0=FSGKQ15U6B39O<.T_N"U%-XK6W@IYV
M46Z4JWYAAD;=EE$TWQ1:4\7:Q$&]BRMG]6.??1%3+AOK%0GE^4);I:!&35V)
MUN@JVNNV(F;@.F[/0U0;.ZBU/E7U_+PER8HP]=-CU-<91?--H37EJZT=G!JK
M0:-FSRB:;PJM^:*G-H](;Q[_( +0G7P.191N0%:!8(T9>Y8U>, LX""E O#]
MZA^YN@%! 7G:15DP59HQ_<7.%1IUO21TID[;D)FZ:%/!VILBO3?-[;>VB/4
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
M8.LP<$);9D[6+34TG2FY)LI:(YH=N-@X;U3#A$WC@U'XE:&?2;^*3%9 #-V
M/B./0D$FEX+]![E=(PL04#"CR<=;,)1Q_8E\)H\/M^3CAT_D V&"?"]EHZG(
M]2PTR,>BAMEV[^MV[^3$WG%"ODEA2DV^B!SRUP A"NG4)#LUUTDOXBUDYV00
MGY$D2A(/H9N?=X][Z RZX X<WN G@DM^7"VT47AL__%%J@4:^H%L+5_JFF8P
M#[!8-:@5!.FOO\3CZ#>?RG<">Z5YV&D>]J&GIX^0*:G!HFYX3@JZDHHN^#.A
M18$%3<#]84'CD=K%C"AJ<%Z0%T!?Y%HZ(T?'7EJK-!YB[E?[ ?'9##N;5SI'
MG<Y1;VY/Z_QQ+SDG>,FLJ<J]R1Z]9[+?">Q5$,9=$,9O2_89CI9,"":61!:D
M!L6D-WLM_OA$9EJ%'AM;GK[L33KBDU[BWY%K+36S3PF>3/H$@N2-LG1-"7CQ
M*@7"]/">''%*Q@>TCTV&$S_K:<=ZVLOZ3UIKL/'4AIK&N"%G%<.9U>'C.3TB
M\3F9'A#UV9RHCHN.Z<5;#P:(O/](7'B.Q&%!^VQ.4(ZCEZ<PZB7]95/C)82$
M<\BP)=+V,B+-R3K'CP(VACP#5=['+SH^(X>A[V?TQNJ-]Q[_N%?Q59:I!G4Q
M80#Q#<&''#,C*#<,GRP%G-IX&(EAR$!A!R!<#+K2\>J.CV[;P6%)>VR2Z"!_
MX5Y74X%:NF9/DTPVPK0M0;?:-917KHTZ6+^VC:;KEEY@VB[U&U5X2VG"H4#(
MZ'R"A%3;^+43(VO7.RVDP4[,#4MLED%9 _Q>2&EV$[M!UWZG_P-02P,$%
M  @ %9A[5LRQ'(KA!0  <"L  !D   !X;"]W;W)K<VAE971S+W-H965T-C4N
M>&ULK9I9;]LX$,>_"J$M%BW01*>OK&,@B7Q(1A9%L]T^%/O 6'0L5!)=DHZ;
M;U_JL"S)M*)TYR61Z/G_.-1PQ$,<[RG[SC>$"/0SCA)^K6V$V%[I.E]M2(SY
M)=V21/ZRIBS&0MZR)YUO&<%!)HHCW3*,OA[C,-$FXZSL$YN,Z4Y$84(^,<1W
M<8S9RRV)Z/Y:,[5#P>?P:2/2 GTRWN(G\D#$E^TG)N_TDA*$,4EX2!/$R/I:
MNS&OEJ:3"C*+?T.RYY5KE#;ED=+OZ8T77&M&ZA&)R$JD""S_/9,[$D4I2?KQ
MHX!J99VIL'I]H,^RQLO&/&).[FCT-0S$YEH;:B@@:[R+Q&>Z7Y"B0;V4MZ(1
MS_ZB?6%K:&BUXX+&A5AZ$(=)_A__+!Y$12 Y:H%5"*RFP#DCL N!W57@% *G
MJZ!7"'I=!?U"T.\J&!2"05?!L! ,NPI&A6#4%/3/!<XX1,[H6H=9!COO='DO
MR;J8BP6>C!G=(Y;:2UYZD?733"][5IBD*?4@F/PUE#HQF6*6A,D31ULB$VV#
M&4'O72)P&/$/Z )]>7#1^W<?T#NDY[]R%";H2Q(*_K%2\,^&[CA. EGXKG8_
MUH5T,JU*7Q4.W>8.66<<LM$]3<2&HVD2D$"A]]OUIM4"T.73*1^1=7A$MU8K
MT26K2V2;'Y%E6);"H;MV^0/92KEQ5NZVR_U=TBJ?MLOO,6MU?M:][:9"/N_>
M=I5\T;WM*KG7O>TJN?__XK[\[4=7ZX9VF:EVQK.[9^JWFT<NF!R5_E/E68YS
MU+ATJ+[B6[PBUYH<BSEAST2;_/F'V3?^4O5Q2)@+"9M"PF:0L#DD; $)\R!A
M/B1L"02K99A39IC31I_\+6>P$>7*02M7]C)E.DU]GEA]8ZP_5W/DU*9G#>LV
M[JG-A64/^G6KJ<+*L9T&:Z:P&EIVW6A^:C0RS+K-0N6483>:YRFMAJ.ZE:^P
MZHWL1@.7J@8:SM&O6OQZ9?QZK6_(AWP^TOY6[$&^%2%A+B1L"@F;0<+FD+ %
M),R#A/F0L"40K)95_3*K^JUOQ5O,P]45^IHM3DF \#-A<K&-5C2.Y9JX6 3(
MU3H7<L8O9RCH?7@H_J#*P-;JWIJ!D# 7$C:%A,UR6+_Z%A\VQX,Y9(T+2)@'
M"?,5SV)D]!H#C,+(&@W5X\N@S(1!:R;<!,$5<L-HE^X"(;)>DY5 =%WK^^3'
M+A0O".\Q"SC"' 5$$":7[C)S'E^0V! D&,%\QUZ07-ZOOJ.8B T-7DN:5L_>
MFC20,!<2-H6$S2!A<TC8 A+F0<+\P4G>-*:!RS:+6EH-R[0:MJ95EE$D.#_$
MR-0Z7*;I]8PCDHC?&'A:W7AK#D'"7$C8%!(V&W89>"!K7$#"/$B8KW@6IP./
MPNCLP#,J,V34NK Y+$RSK9_JO.N5M<X(LL-#PEQ(V!02-H.$S2%A"TB8!PGS
M(6%+(%@MT4SC^#G$>'VUDPTD 8TBS"K;K<HQI< -JL/AI='8A+E36S5>':["
MZL*XM)S&YI#:S&F8S=1F1O/=79@-:ZXU-XC.>-9HIM?-S%=4*<V:6T1GFFFK
M7Z5FY8.7V66Z\988FYUBK+0ZB?&IE3+&2K/3&"O-3F.L=&W4#++:M9,@=S+S
M"[/7@JQNY[D@6\<@6ZU!?LB65C?Y*NS;/8D?"5,.D>V<MXZ1H#07E#8%I<U
M:7-0V@*4YH'2?%#:$HI6S[+C%TD3^).D"?I-$I3F@M*FH+09*&T.2EN TCQ0
MF@]*6T+1ZMEV_#IIMG^>O$E$>!$<MA\Y6>U8*$+"$?FYBG:!G-*L&8W3]>%V
M)W!V8(VN$:GFZ%&=G_1IWR]I]^?-V0I)<T%I4U#:#)0V!Z4M0&D>*,TO:-6]
M$]/IVX;1W()4&-HCLVJ7IYA>.1<7$_:4'=WD,D-VB<@/WI2EY?'0F^Q09*/\
MUKSR3$6YGQXGS<[A'?'Y6=1[S)["A*.(K&55QN6@IR&6'^_,;P3=9J?R'JD0
M-,XN-P0'A*4&\O<UI>)PDU90'K*=_ )02P,$%     @ %9A[5B75EE+@ @
M80D  !D   !X;"]W;W)K<VAE971S+W-H965T-C8N>&ULK59=;]HP%/TK5E9-
MK=21#T*@#"(!V;0]5*J*VCU,>S#)A5AUXLPVT/W[V4[(4A;25N(E\<<]Q_>>
M:_MZLF?\2:0 $CUG-!=3*Y6R&-NVB%/(L.BQ G(ULV8\PU)U^<86!0><&%!&
M;<]Q CO#)+?"B1F[X^&$;24E.=QQ)+99AOF?.5"VGUJN=1BX)YM4Z@$[G!1X
M TN0#\4=5SV[9DE(!KD@+$<<UE-KYHZC0-L;@T<">]%H(QW)BK$GW?F>3"U'
M.P048JD9L/KM8 &4:B+EQN^*TZJ7U,!F^\#^U<2N8EEA 0M&?Y!$IE-K9*$$
MUGA+Y3W;?X,JGH'FBQD5YHOVE:UCH7@K),LJL/(@(WGYQ\^5#@V &YP >!7
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
M- S:RS5P[ND[+%><RBU@\VX6 K<43VE&)7TU(=6+G&G3G@OMT"5[]09T;[
M]:PBX7%*B5$G3F[L4[FCECMZC7O?RKTRBP[N,G1$W@E^*OFV6('.ZD"3#ZWD
M>T?D8]B]K-W8IW)O2P_HKCT4]\C*O7_$'1U1=T*?2KVM2*#SBD^>F,096!6[
M5*6R5Y6?2[Q5[9"T%];AL:X8];O*_H_B K;5!727%[=$"$#S<J4U4:5,+2*M
M:J+CXQ%%73'.Q4X5TQ8?T'E9UV&J(I.UF=DJ)S[*5"@,!UT]9RT._+T.+R=\
M81I? <R.JOJGYFW37%^;EK+S_D8WW:9S;&&JCOT.\P4MA/+!7$$&%[$2R*LF
MN!I(5IH^<LJDZDK-XY+@E' ]07V?,R9W [U \Z^(Y%]02P,$%     @ %9A[
M5NPG >VV!   _A<  !D   !X;"]W;W)K<VAE971S+W-H965T-CDN>&ULK5A;
M<Z,V&/TK&KK3268VX2*NJ>V9)/@^Z:2;IGWH]$$Q<LPL(*\DQ[O_ON)BU@B%
MI2TO-HASCKY/1Q\2&AT)_<QV&'/P-4TR-M9VG.]O=)UM=CA%[)KL<2:>; E-
M$1>W]%5G>XI15)#21+<,P]53%&?:9%2T/=+)B!QX$F?XD0)V2%-$O]WAA!S'
MFJF=&C[%KSN>-^B3T1Z]XB?,G_>/5-SIM4H4ISAC,<D Q=NQ=FO>K(,<7P#^
MB/&1G5V#/),70C[G-\MHK!EY0#C!&YXK(/'WAN]QDN1"(HPOE:96=YD3SZ]/
MZK,B=Y'+"V+XGB1_QA'?C35? Q'>HD/"/Y'C E?Y.+G>AB2L^ 7'"FMH8'-@
MG*056420QEGYC[Y6XW!&$#IJ@E41+)E@OT. %0'V)=@5P>Y+<"J"TY?@5@2W
M+\&K"%Y?@E\1_+Z$H"($,L%]SSCCY)S1MP^S-KN<=.4L*:98B#B:C"@Y IKC
MA5Y^4<S3@B]F5ISE%?7$J7@:"QZ?_'9 E&.:?!/EP<0T9(!L@:A7BO(9S\#%
M(4.'*.8XN@07(>8H3M@EN +/3R&X^' )/@ =L!T29!!GX#F+.?LH&L7U[SMR
M8"B+V$CG(M"\.WU3!757!F6]$Q0$#R3C.P:F680C!7_5S3>M#@%=C% ]3-9I
MF.ZL3L40;ZX!-#\"R[ L14#WW?0GO!=TXUUZV$U?';).^K2;_H!H9_"S_KF;
M"OJ\?^XJ^J)_[BKZLG_N*OKJ__F^_L]#UYB&L*Y66.C! :KUK]L7QJE8LOY6
M%6#9CZWN)U_&;]@>;?!8$^LTP_0-:Y.??S)=XQ?5Y!]2+!Q2;#JDV&Q(L?F0
M8HLAQ99#BJV&%%L/)-8H/;LN/;M+??*KV-TRE&#E<E92G8*:[V'?)J87./Y(
M?SLO$Q7*=]PF*E2@+->"3=2TC0H\PVJ"9@HITY2EY@J4X4*OB5HH.H26TP0M
MVR ?&F83M&J#'-^$01.U;J-@ /WO@]4PT:E-=#I-G%/"&-A3LHVYRL>2[9['
M;YE29/<*D!E(@QJV08X-;<G$-LAR7&D^S-H@&QH2:*X$2>XLVB!H0VG.+!4@
M*)NS4@1NVZ8DM6ZC3 ?ZEMI"M[;0_6$=7B3"QDNQR=R0%*M\=%N3QW(-R<8V
MQK&DB@W;F"L+>M+@3Q4HX;6D-5.@_%8MMD&!7#\+55 &E-);*E&^;*0"Y010
M2G"M2M"P3;617FVDU[F7:1D)Q#X&B(M4?&D7GQ0_V,)X0VYAAA0+AQ2;#BDV
M&U)L/J388DBQY9!BJR'%U@.)-2K.KRO.[WQUWB$6;\"%^#:/2)(@RHJ**TKM
M4E5@I9IW5O;&M2&]L>Z5(&GE"=N@*^/:DI=#)<J64#,ERI#>MO,2Y3?"DE^D
MZJBD!)>]4*MV?P(EOT?5"4+U>S2H70TZ70WCY" ^^/Z%KT$?7Y4@V=<V2.6K
M$M7R58EJ^:H,2UK5%NJP9&-[H59!'V/5&<K&ZF?'="FFK\5),A-+WB'CY1E
MW5H?5M\69[12^YUYLS05[2OS9ET>"WZ7+T_&'Q!]C3,&$KP571G7GEC,:7G:
M7-YPLB\."5\(YR0M+G<819CF /%\2P@_W>0=U$?^DW\ 4$L#!!0    ( !68
M>U;N#.:[T ,  +43   9    >&PO=V]R:W-H965T<R]S:&5E=#<P+GAM;+58
M76_B.!3]*U9FM)J1IDV< ($N(+5D1C,/E:IV9_9AM \FN8 UB9VU#;32_OBU
MDQ#(1Z,R35\@3NXYON<XOEP\W7/Q2VX %'I,8B9GUD:I],JV9;B!A,A+G@+3
M3U9<)$3IH5C;,A5 H@R4Q+;K.",[(919\VEV[T[,IWRK8LK@3B"Y31(BGFX@
MYON9A:W#C7NZWBASPYY/4[*&!U#?TSNA1W;)$M$$F*2<(0&KF76-KP(\-( L
MX@>%O3RY1D;*DO-?9O MFEF.R0AB")6A(/IK!PN(8\.D\_BW(+7*.0WP]/K
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
M>,+SX4V>;/</YGU*\CS9[%^N>;#D:2E0_'Z5)/G;F[*!XW.V;_\'4$L#!!0
M   ( !68>U92#%BM.P4  ((J   9    >&PO=V]R:W-H965T<R]S:&5E=#<R
M+GAM;+V::V_B1A2&_\K(7559:3>^&T@)4A+;^-)44=+=?ECU@P,#6&M[Z'B
MC=0?W[$Q!L-@F?1HOP1[..\SM_.:<6:&&T*_YPN,&?J1)EE^*RT86][(<CY9
MX#3*K\D29_R;&:%IQ/@MG<OYDN)H6HK21-84Q9+3*,ZDT; L>Z*C(5FQ),[P
M$T7Y*DTC^G:/$[*YE51I5_ <SQ>L*)!'PV4TQR^8?5D^47XGUY1IG.(LCTF&
M*)[=2G?J3:CJA:",^!KC37YPC8JNO!+RO;CQI[>24K0()WC""D3$/];X 2=)
M0>+M^*>"2G6=A?#P>D=WR\[SSKQ&.7X@R5_QE"UNI;Z$IG@6K1+V3#8>KCID
M%KP)2?+R+]I4L8J$)JN<D;02\Q:D<;;]C'Y4 W$@X!RQ0*L$VK' ."/0*X'>
M56!4 J.KP*P$9E>!50FLKH)>)>AU%?0K0;^K8% )!L<"Z]S$*;N94[K6H=:3
MO4VZ;9:4*69'+!H-*=D@6L1S7G%1YFFIYYD59X6E7ACEW\9<QT8/BRB;8Q07
MR3TAJXS%V1PM:9Q-XF6"/R%G-N/)C\@,59'<!B\L8IC;BN5E.4FYF1>%R]88
M^=F$I!A=_4[R_".ZLC&+XH1??49?7FQT]>$C^E!4]N>"K/(HF^9#F?%>%&V1
M)U6+[[<MULZT6$>/)&.+'#G9%$\%^J!=KVHM )D/7SV&VFX,[[56HHTGUTA7
M/R%-T31!@Q[:Y2]XR>7*6;G=+@]66:O<:9<_1K2U\6[WOJL"^;A[WT5RKWO?
M17*_>]]%\N#_S7OX[J%KI*%>6UDO>?HY*Y,L)TD\Y>:<MGJT\";Z=O>:,\I_
MT?X667!;DR&NJ?B9O\F7T03?2AR;8[K&TNC77U1+^4V4_I P&Q+F0,)<2-@8
M$N9!PGQ(6  )"X%@#?,9M?F,-OKH#[[Z3;BO1&;:*LU262QQUR/-4H;R^M C
MIS&FUF_&V*<QGS6]9S6C'$&4H1M'+%<0U=?T9M#X-&B@J,T83]0H13_JGB^,
MZ@^:48$@RASH1QT,11U4C'V[&O-GUO-GMLY?\PEY;B9;&9<^%B%A-B3,@82Y
M6YAU.%T]\R@_QI U>I P'Q(6F*>I:ZGFD3=#P8CI_8,G1B/!K3K!K=8$?Z)X
M'?-%=_*&GO&2T&*1\.T1IZ^8"E< K;1+4QT29D/"'$B8"PD;0\(\2)@/"0L@
M82$0K&&P7FVPWD];?O<@S0<)LR%A#B3,A82-(6$>),R'A 60L! (UC!?OS9?
M_]W+[U;EI6:"A-F0, <2YO8%BS;=/%JT0=;H0<)\2%@ "0L% VNHABE>VPWJ
M[!\ O+RT,B[U 23,AH0YD#!W<#I=EJ4=^0"R1@\2YD/" DA8*!A8?6 98A^H
MRGXW0VEUPLEVQ>X5!_V+]EL=CY@MR+2(\K,U7Z01^H:^1LDJ*G?Y&$%W:TPC
M'OM \G)#I.U%J;U%E_H*E&:#TAQ0F@M*&X/2/%":#TH+0&DA%*WIUX/=1_6G
MO31554$9$9)F@](<4)H+2AN#TCQ0F@]*"T!I(12M:41M;T3MW2]0[=*+C05)
MLT%I#BC-K6B-14[_Z)^]8] J/5":#TH+0&FA8'!5Y=SZ<;^%KK9N$G9\DVJ'
M7&P(T/UQ4)H#2G,KFMEN"-"M;U":#TH+0&FA8'!/#2$?G!1+,9V7AQES5)[\
MVIXTJ4OK Y-WY3'!H_)[]<97!>5!<<"R/)FVQV]/9SY&=!YG.4KPC%>E7/=X
M2^GVP./VAI%E>4[ME3!&TO)R@:,IID4 _WY&"-O=%!74QTY'_P%02P,$%
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
M:Z+DQT51L6OOJ$32="C-@-),PI$_)\JX';O(-FTHS8'27"C-X\WNB(P.W!Q
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
M    L0   !               ( !     &1O8U!R;W!S+V%P<"YX;6Q02P$"
M% ,4    "  5F'M6!]592.T    K @  $0              @ &O    9&]C
M4')O<',O8V]R92YX;6Q02P$"% ,4    "  5F'M6F5R<(Q &  "<)P  $P
M            @ '+ 0  >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0    (
M !68>U:I<M8-G0<  /HQ   8              " @0P(  !X;"]W;W)K<VAE
M971S+W-H965T,2YX;6Q02P$"% ,4    "  5F'M6(^H/93\'  #7(   &
M            @('?#P  >&PO=V]R:W-H965T<R]S:&5E=#(N>&UL4$L! A0#
M%     @ %9A[5C:!QJR> P  TP\  !@              ("!5!<  'AL+W=O
M<FMS:&5E=',O<VAE970S+GAM;%!+ 0(4 Q0    ( !68>U:FH0+_<P4  , 6
M   8              " @2@;  !X;"]W;W)K<VAE971S+W-H965T-"YX;6Q0
M2P$"% ,4    "  5F'M6(/,LZ- #   Y$P  &               @('1(
M>&PO=V]R:W-H965T<R]S:&5E=#4N>&UL4$L! A0#%     @ %9A[5OP N[);
M"   NST  !@              ("!UR0  'AL+W=O<FMS:&5E=',O<VAE970V
M+GAM;%!+ 0(4 Q0    ( !68>U;K;:\+<@<  /\@   8              "
M@6@M  !X;"]W;W)K<VAE971S+W-H965T-RYX;6Q02P$"% ,4    "  5F'M6
M4AI3_]8.  #3)0  &               @($0-0  >&PO=V]R:W-H965T<R]S
M:&5E=#@N>&UL4$L! A0#%     @ %9A[5I!=GXQ\%   Z3H  !@
M     ("!'$0  'AL+W=O<FMS:&5E=',O<VAE970Y+GAM;%!+ 0(4 Q0    (
M !68>U92Z2C+FP(  (4%   9              " @<Y8  !X;"]W;W)K<VAE
M971S+W-H965T,3 N>&UL4$L! A0#%     @ %9A[5EI%A&KN @  008  !D
M             ("!H%L  'AL+W=O<FMS:&5E=',O<VAE970Q,2YX;6Q02P$"
M% ,4    "  5F'M6P/O*UBT#  !&!P  &0              @('%7@  >&PO
M=V]R:W-H965T<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    ( !68>U:W3,"U?@(
M )$%   9              " @2EB  !X;"]W;W)K<VAE971S+W-H965T,3,N
M>&UL4$L! A0#%     @ %9A[5DVHH:G0 @  ;@8  !D              ("!
MWF0  'AL+W=O<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"% ,4    "  5F'M6
M&[L%''P)  #T&0  &0              @('E9P  >&PO=V]R:W-H965T<R]S
M:&5E=#$U+GAM;%!+ 0(4 Q0    ( !68>U:/+!6^60<  !@2   9
M      " @9AQ  !X;"]W;W)K<VAE971S+W-H965T,38N>&UL4$L! A0#%
M  @ %9A[5G!(PQL/"0  .Q<  !D              ("!*'D  'AL+W=O<FMS
M:&5E=',O<VAE970Q-RYX;6Q02P$"% ,4    "  5F'M6Z]Y*!!,$  "9"0
M&0              @(%N@@  >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;%!+
M 0(4 Q0    ( !68>U9O?"U,WP(  ) &   9              " @;B&  !X
M;"]W;W)K<VAE971S+W-H965T,3DN>&UL4$L! A0#%     @ %9A[5GCM8JZP
M P  5P@  !D              ("!SHD  'AL+W=O<FMS:&5E=',O<VAE970R
M,"YX;6Q02P$"% ,4    "  5F'M6[9]JMH<#  #H!P  &0
M@(&UC0  >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+ 0(4 Q0    ( !68
M>U9I<*>*-@,  (T'   9              " @7.1  !X;"]W;W)K<VAE971S
M+W-H965T,C(N>&UL4$L! A0#%     @ %9A[5I767VB\!@  <A,  !D
M         ("!X)0  'AL+W=O<FMS:&5E=',O<VAE970R,RYX;6Q02P$"% ,4
M    "  5F'M66G+K1. "  !A!@  &0              @('3FP  >&PO=V]R
M:W-H965T<R]S:&5E=#(T+GAM;%!+ 0(4 Q0    ( !68>U8^F,V6KQ4  %E$
M   9              " @>J>  !X;"]W;W)K<VAE971S+W-H965T,C4N>&UL
M4$L! A0#%     @ %9A[5FY-) N_!0  "PX  !D              ("!T+0
M 'AL+W=O<FMS:&5E=',O<VAE970R-BYX;6Q02P$"% ,4    "  5F'M6(]:Y
MH)\"  !_!0  &0              @('&N@  >&PO=V]R:W-H965T<R]S:&5E
M=#(W+GAM;%!+ 0(4 Q0    ( !68>U:O(E8J]0(  #4&   9
M  " @9R]  !X;"]W;W)K<VAE971S+W-H965T,C@N>&UL4$L! A0#%     @
M%9A[5O, C7O) @  .08  !D              ("!R,   'AL+W=O<FMS:&5E
M=',O<VAE970R.2YX;6Q02P$"% ,4    "  5F'M6T>O?XH4"  "#!0  &0
M            @('(PP  >&PO=V]R:W-H965T<R]S:&5E=#,P+GAM;%!+ 0(4
M Q0    ( !68>U9+.N2_ @4  $@,   9              " @83&  !X;"]W
M;W)K<VAE971S+W-H965T,S$N>&UL4$L! A0#%     @ %9A[5C].*)MQ!P
M6Q,  !D              ("!O<L  'AL+W=O<FMS:&5E=',O<VAE970S,BYX
M;6Q02P$"% ,4    "  5F'M6V&ZE!O("  "%!@  &0              @(%E
MTP  >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4 Q0    ( !68>U9T
MM\8]^ (  (4&   9              " @8[6  !X;"]W;W)K<VAE971S+W-H
M965T,S0N>&UL4$L! A0#%     @ %9A[5@B!ZPEN P  E @  !D
M     ("!O=D  'AL+W=O<FMS:&5E=',O<VAE970S-2YX;6Q02P$"% ,4
M"  5F'M6AYQ@04 #  !:!P  &0              @(%BW0  >&PO=V]R:W-H
M965T<R]S:&5E=#,V+GAM;%!+ 0(4 Q0    ( !68>U:+\:5-,@4  )T/   9
M              " @=G@  !X;"]W;W)K<VAE971S+W-H965T,S<N>&UL4$L!
M A0#%     @ %9A[5CN 58RD!   X1P  !D              ("!0N8  'AL
M+W=O<FMS:&5E=',O<VAE970S."YX;6Q02P$"% ,4    "  5F'M67W%T(C$"
M  #%!   &0              @($=ZP  >&PO=V]R:W-H965T<R]S:&5E=#,Y
M+GAM;%!+ 0(4 Q0    ( !68>U9'GG\FX0(  -8'   9              "
M@87M  !X;"]W;W)K<VAE971S+W-H965T-# N>&UL4$L! A0#%     @ %9A[
M5EQ>KRC\ P  *A<  !D              ("!G?   'AL+W=O<FMS:&5E=',O
M<VAE970T,2YX;6Q02P$"% ,4    "  5F'M6HVDL>J$#   ?%0  &0
M        @('0]   >&PO=V]R:W-H965T<R]S:&5E=#0R+GAM;%!+ 0(4 Q0
M   ( !68>U9S1_6/2 (   L%   9              " @:CX  !X;"]W;W)K
M<VAE971S+W-H965T-#,N>&UL4$L! A0#%     @ %9A[5IU(=FL^#   %[X
M !D              ("!)_L  'AL+W=O<FMS:&5E=',O<VAE970T-"YX;6Q0
M2P$"% ,4    "  5F'M6'SQU/%0#   #"P  &0              @(&<!P$
M>&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0    ( !68>U9D5;;(
M"@,  +(,   9              " @2<+ 0!X;"]W;W)K<VAE971S+W-H965T
M-#8N>&UL4$L! A0#%     @ %9A[5L<"Q]&9 P  #1(  !D
M ("!: X! 'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6Q02P$"% ,4    "  5
MF'M6^$CEE-,"  "!!P  &0              @($X$@$ >&PO=V]R:W-H965T
M<R]S:&5E=#0X+GAM;%!+ 0(4 Q0    ( !68>U8;.XTI7P(  +P%   9
M          " @4(5 0!X;"]W;W)K<VAE971S+W-H965T-#DN>&UL4$L! A0#
M%     @ %9A[5HEB'/F$ @  T08  !D              ("!V!<! 'AL+W=O
M<FMS:&5E=',O<VAE970U,"YX;6Q02P$"% ,4    "  5F'M6QU1D7R@$  #V
M%0  &0              @(&3&@$ >&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM
M;%!+ 0(4 Q0    ( !68>U9\,]VXO@,  *X0   9              " @?(>
M 0!X;"]W;W)K<VAE971S+W-H965T-3(N>&UL4$L! A0#%     @ %9A[5O>A
M-8F8 @  <0<  !D              ("!YR(! 'AL+W=O<FMS:&5E=',O<VAE
M970U,RYX;6Q02P$"% ,4    "  5F'M6YV+_W)\"  !S!P  &0
M    @(&V)0$ >&PO=V]R:W-H965T<R]S:&5E=#4T+GAM;%!+ 0(4 Q0    (
M !68>U;AY(KBTP8   @Z   9              " @8PH 0!X;"]W;W)K<VAE
M971S+W-H965T-34N>&UL4$L! A0#%     @ %9A[5CSL3;RH P   !   !D
M             ("!EB\! 'AL+W=O<FMS:&5E=',O<VAE970U-BYX;6Q02P$"
M% ,4    "  5F'M6:A1Z\AP$  "\$@  &0              @(%U,P$ >&PO
M=V]R:W-H965T<R]S:&5E=#4W+GAM;%!+ 0(4 Q0    ( !68>U8D/JE#P0(
M *$(   9              " @<@W 0!X;"]W;W)K<VAE971S+W-H965T-3@N
M>&UL4$L! A0#%     @ %9A[5FI./_+U"   TCH  !D              ("!
MP#H! 'AL+W=O<FMS:&5E=',O<VAE970U.2YX;6Q02P$"% ,4    "  5F'M6
M$YN6)4L%   ?(0  &0              @('L0P$ >&PO=V]R:W-H965T<R]S
M:&5E=#8P+GAM;%!+ 0(4 Q0    ( !68>U;&3$(V=00  ,01   9
M      " @6Y) 0!X;"]W;W)K<VAE971S+W-H965T-C$N>&UL4$L! A0#%
M  @ %9A[5MS']VC^ @  $ @  !D              ("!&DX! 'AL+W=O<FMS
M:&5E=',O<VAE970V,BYX;6Q02P$"% ,4    "  5F'M6JMS;3^8#  "\#0
M&0              @(%/40$ >&PO=V]R:W-H965T<R]S:&5E=#8S+GAM;%!+
M 0(4 Q0    ( !68>U:U90A;D@,  (H+   9              " @6Q5 0!X
M;"]W;W)K<VAE971S+W-H965T-C0N>&UL4$L! A0#%     @ %9A[5LRQ'(KA
M!0  <"L  !D              ("!-5D! 'AL+W=O<FMS:&5E=',O<VAE970V
M-2YX;6Q02P$"% ,4    "  5F'M6)=664N "  !A"0  &0
M@(%-7P$ >&PO=V]R:W-H965T<R]S:&5E=#8V+GAM;%!+ 0(4 Q0    ( !68
M>U9_Y(L8)@@  /]E   9              " @61B 0!X;"]W;W)K<VAE971S
M+W-H965T-C<N>&UL4$L! A0#%     @ %9A[5HR=$08#!   EA   !D
M         ("!P6H! 'AL+W=O<FMS:&5E=',O<VAE970V."YX;6Q02P$"% ,4
M    "  5F'M6["<![;8$  #^%P  &0              @('[;@$ >&PO=V]R
M:W-H965T<R]S:&5E=#8Y+GAM;%!+ 0(4 Q0    ( !68>U;N#.:[T ,  +43
M   9              " @>AS 0!X;"]W;W)K<VAE971S+W-H965T-S N>&UL
M4$L! A0#%     @ %9A[5@PO!-_F"@  <WL  !D              ("![W<!
M 'AL+W=O<FMS:&5E=',O<VAE970W,2YX;6Q02P$"% ,4    "  5F'M64@Q8
MK3L%  ""*@  &0              @($,@P$ >&PO=V]R:W-H965T<R]S:&5E
M=#<R+GAM;%!+ 0(4 Q0    ( !68>U8MBXYUM@4  &$T   9
M  " @7Z( 0!X;"]W;W)K<VAE971S+W-H965T-S,N>&UL4$L! A0#%     @
M%9A[5H:G/Z$V"   FEH  !D              ("!:XX! 'AL+W=O<FMS:&5E
M=',O<VAE970W-"YX;6Q02P$"% ,4    "  5F'M6HPX"N$L"  !D!0  &0
M            @('8E@$ >&PO=V]R:W-H965T<R]S:&5E=#<U+GAM;%!+ 0(4
M Q0    ( !68>U94:!,J.@,  ,@3   -              "  5J9 0!X;"]S
M='EL97,N>&UL4$L! A0#%     @ %9A[5I>*NQS     $P(   L
M     ( !OYP! %]R96QS+RYR96QS4$L! A0#%     @ %9A[5L1_;EY^!0
M4C$   \              ( !J)T! 'AL+W=O<FMB;V]K+GAM;%!+ 0(4 Q0
M   ( !68>U9G_%)"3 (  &@L   :              "  5.C 0!X;"]?<F5L
M<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4 Q0    ( !68>U:&IF-(# (  &$K
M   3              "  =>E 0!;0V]N=&5N=%]4>7!E<UTN>&UL4$L%!@
0  !3 %, O!8  !2H 0    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<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>91
<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>92
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.23.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>188</ContextCount>
  <ElementCount>375</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>57</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000100 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>010000 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedBalanceSheets</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>010100 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>020000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfOperations</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>050000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>060100 - Disclosure - Description of business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DescriptionOfBusiness</Role>
      <ShortName>Description of business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>060200 - Disclosure - Summary of significant accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>Summary of significant accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>060300 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>060400 - Disclosure - Fixed assets, net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNet</Role>
      <ShortName>Fixed assets, net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>060500 - Disclosure - Intangible assets, net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNet</Role>
      <ShortName>Intangible assets, net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>060600 - Disclosure - Accrued liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilities</Role>
      <ShortName>Accrued liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>060700 - Disclosure - Retirement savings plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RetirementSavingsPlan</Role>
      <ShortName>Retirement savings plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>060800 - Disclosure - Borrowings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Borrowings</Role>
      <ShortName>Borrowings</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>060900 - Disclosure - Stock incentive plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlans</Role>
      <ShortName>Stock incentive plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>061000 - Disclosure - Income taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxes</Role>
      <ShortName>Income taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>061100 - Disclosure - Earnings per share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShare</Role>
      <ShortName>Earnings per share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>061200 - Disclosure - Stock repurchase program</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockRepurchaseProgram</Role>
      <ShortName>Stock repurchase program</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>061300 - Disclosure - Geographic area information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformation</Role>
      <ShortName>Geographic area information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>061400 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/Leases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>061500 - Disclosure - Quarterly results of operations (unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited</Role>
      <ShortName>Quarterly results of operations (unaudited)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>061600 - Disclosure - Change in accounting principle</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrinciple</Role>
      <ShortName>Change in accounting principle</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>061700 - Disclosure - Subsequent events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>070200 - Disclosure - Summary of significant accounting policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of significant accounting policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>080200 - Disclosure - Summary of significant accounting policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables</Role>
      <ShortName>Summary of significant accounting policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>080300 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Inventories</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>080400 - Disclosure - Fixed assets, net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNetTables</Role>
      <ShortName>Fixed assets, net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/FixedAssetsNet</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>080500 - Disclosure - Intangible assets, net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNetTables</Role>
      <ShortName>Intangible assets, net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IntangibleAssetsNet</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>080600 - Disclosure - Accrued liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilitiesTables</Role>
      <ShortName>Accrued liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/AccruedLiabilities</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>080900 - Disclosure - Stock incentive plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansTables</Role>
      <ShortName>Stock incentive plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/StockIncentivePlans</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>081000 - Disclosure - Income taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesTables</Role>
      <ShortName>Income taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IncomeTaxes</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>081100 - Disclosure - Earnings per share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShareTables</Role>
      <ShortName>Earnings per share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/EarningsPerShare</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>081300 - Disclosure - Geographic area information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformationTables</Role>
      <ShortName>Geographic area information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/GeographicAreaInformation</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>081400 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Leases</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>081500 - Disclosure - Quarterly results of operations (unaudited) (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables</Role>
      <ShortName>Quarterly results of operations (unaudited) (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>081600 - Disclosure - Change in accounting principle (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleTables</Role>
      <ShortName>Change in accounting principle (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://transact-tech.com/role/ChangeInAccountingPrinciple</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>090100 - Disclosure - Description of business (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/DescriptionOfBusinessDetails</Role>
      <ShortName>Description of business (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/DescriptionOfBusiness</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>090200 - Disclosure - Summary of significant accounting policies, Segment reporting (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails</Role>
      <ShortName>Summary of significant accounting policies, Segment reporting (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>090202 - Disclosure - Summary of significant accounting policies, Allowance for doubtful accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails</Role>
      <ShortName>Summary of significant accounting policies, Allowance for doubtful accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>090204 - Disclosure - Summary of significant accounting policies, Fixed assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails</Role>
      <ShortName>Summary of significant accounting policies, Fixed assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>090206 - Disclosure - Summary of significant accounting policies, Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails</Role>
      <ShortName>Summary of significant accounting policies, Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>090208 - Disclosure - Summary of significant accounting policies, Goodwill and intangible assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails</Role>
      <ShortName>Summary of significant accounting policies, Goodwill and intangible assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue recognition - Contract balances (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>090214 - Disclosure - Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails</Role>
      <ShortName>Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails</Role>
      <ShortName>Summary of significant accounting policies, Concentration of credit risk (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>090220 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails</Role>
      <ShortName>Summary of significant accounting policies, Engineering, design and product development (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>090222 - Disclosure - Summary of significant accounting policies, Advertising (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails</Role>
      <ShortName>Summary of significant accounting policies, Advertising (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>090300 - Disclosure - Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/InventoriesDetails</Role>
      <ShortName>Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/InventoriesTables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>090400 - Disclosure - Fixed assets, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/FixedAssetsNetDetails</Role>
      <ShortName>Fixed assets, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/FixedAssetsNetTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>090500 - Disclosure - Intangible assets, net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IntangibleAssetsNetDetails</Role>
      <ShortName>Intangible assets, net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/IntangibleAssetsNetTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>090600 - Disclosure - Accrued liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/AccruedLiabilitiesDetails</Role>
      <ShortName>Accrued liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/AccruedLiabilitiesTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>090700 - Disclosure - Retirement savings plan (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/RetirementSavingsPlanDetails</Role>
      <ShortName>Retirement savings plan (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/RetirementSavingsPlan</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>090800 - Disclosure - Borrowings (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/BorrowingsDetails</Role>
      <ShortName>Borrowings (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/Borrowings</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>090900 - Disclosure - Stock incentive plans, Stock incentive plans (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails</Role>
      <ShortName>Stock incentive plans, Stock incentive plans (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>090902 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails</Role>
      <ShortName>Stock incentive plans, Assumptions used in option valuation calculations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>090904 - Disclosure - Stock incentive plans, Share-based compensation expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails</Role>
      <ShortName>Stock incentive plans, Share-based compensation expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>090906 - Disclosure - Stock incentive plans, Stock options (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails</Role>
      <ShortName>Stock incentive plans, Stock options (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>091000 - Disclosure - Income taxes, Components of income tax benefit (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails</Role>
      <ShortName>Income taxes, Components of income tax benefit (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>091002 - Disclosure - Income taxes, Deferred tax assets and liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>Income taxes, Deferred tax assets and liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>091004 - Disclosure - Income taxes, Valuation allowance on deferred tax assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails</Role>
      <ShortName>Income taxes, Valuation allowance on deferred tax assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>091006 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails</Role>
      <ShortName>Income taxes, Statutory to effective tax rate reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>091008 - Disclosure - Income taxes, Unrecognized tax benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails</Role>
      <ShortName>Income taxes, Unrecognized tax benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>091100 - Disclosure - Earnings per share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/EarningsPerShareDetails</Role>
      <ShortName>Earnings per share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/EarningsPerShareTables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>091200 - Disclosure - Stock repurchase program (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/StockRepurchaseProgramDetails</Role>
      <ShortName>Stock repurchase program (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/StockRepurchaseProgram</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>091300 - Disclosure - Geographic area information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/GeographicAreaInformationDetails</Role>
      <ShortName>Geographic area information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/GeographicAreaInformationTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>091400 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/LeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/LeasesTables</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>091500 - Disclosure - Quarterly results of operations (unaudited) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails</Role>
      <ShortName>Quarterly results of operations (unaudited) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>091600 - Disclosure - Change in accounting principle, Effect of Change on Balance Sheets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails</Role>
      <ShortName>Change in accounting principle, Effect of Change on Balance Sheets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>091602 - Disclosure - Change in accounting principle, Effect of Change on Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails</Role>
      <ShortName>Change in accounting principle, Effect of Change on Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>091604 - Disclosure - Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails</Role>
      <ShortName>Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>091606 - Disclosure - Change in accounting principle, Effect of Change on Statements of Cash Flows (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails</Role>
      <ShortName>Change in accounting principle, Effect of Change on Statements of Cash Flows (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>091608 - Disclosure - Change in accounting principle, Effect of Change on Statements of Changes in Shareholders' Equity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails</Role>
      <ShortName>Change in accounting principle, Effect of Change on Statements of Changes in Shareholders' Equity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="form10k2022.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>091702 - Disclosure - Subsequent events (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://transact-tech.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent events (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://transact-tech.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>
  <Logs>
    <Log type="Warning">[dq-0542-Deprecated-Concept] Concept TreasuryStockShares in us-gaap/2022 used in 2 facts was deprecated in us-gaap/2023 as of 2023 and should not be used. form10k2022.htm 4417</Log>
    <Log type="Warning">[dq-0542-Deprecated-Concept] Concept TreasuryStockMember in us-gaap/2022 used in 16 facts was deprecated in us-gaap/2023 as of 2023 and should not be used. form10k2022.htm 4998, 5029, 5060, 5091, 5122, 5153, 5184, 5215, 5246, 5277, 5308, 5339, 5370, 5401, 5432, 5463</Log>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 4 fact(s) appearing in ix:hidden were eligible for transformation: dei:CurrentFiscalYearEndDate, us-gaap:ProceedsFromStockOptionsExercised, us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 -  form10k2022.htm 10</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-K" original="form10k2022.htm">form10k2022.htm</File>
    <File>ex23_1.htm</File>
    <File>ex31_1.htm</File>
    <File>ex31_2.htm</File>
    <File>ex32.htm</File>
    <File>ex3_2.htm</File>
    <File>tact-20221231.xsd</File>
    <File>tact-20221231_cal.xml</File>
    <File>tact-20221231_def.xml</File>
    <File>tact-20221231_lab.xml</File>
    <File>tact-20221231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>image01.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="911">http://fasb.org/us-gaap/2022</BaseTaxonomy>
    <BaseTaxonomy items="37">http://xbrl.sec.gov/dei/2022</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>95
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "form10k2022.htm": {
   "axisCustom": 0,
   "axisStandard": 24,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2022": 911,
    "http://xbrl.sec.gov/dei/2022": 37
   },
   "contextCount": 188,
   "dts": {
    "calculationLink": {
     "local": [
      "tact-20221231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tact-20221231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "form10k2022.htm"
     ]
    },
    "labelLink": {
     "local": [
      "tact-20221231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tact-20221231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "tact-20221231.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2004/ref-2004-08-10.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd",
      "https://xbrl.sec.gov/country/2022/country-2022.xsd",
      "https://xbrl.sec.gov/currency/2022/currency-2022.xsd",
      "https://xbrl.sec.gov/dei/2022/dei-2022.xsd",
      "https://xbrl.sec.gov/exch/2022/exch-2022.xsd",
      "https://xbrl.sec.gov/naics/2022/naics-2022.xsd",
      "https://xbrl.sec.gov/sic/2022/sic-2022.xsd",
      "https://xbrl.sec.gov/stpr/2022/stpr-2022.xsd"
     ]
    }
   },
   "elementCount": 639,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2022": 4,
    "http://xbrl.sec.gov/dei/2022": 6,
    "total": 10
   },
   "keyCustom": 31,
   "keyStandard": 344,
   "memberCustom": 21,
   "memberStandard": 36,
   "nsprefix": "tact",
   "nsuri": "http://transact-tech.com/20221231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "000100 - Document - Document and Entity Information",
     "menuCat": "Cover",
     "order": "1",
     "role": "http://transact-tech.com/role/DocumentAndEntityInformation",
     "shortName": "Document and Entity Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060300 - Disclosure - Inventories",
     "menuCat": "Notes",
     "order": "10",
     "role": "http://transact-tech.com/role/Inventories",
     "shortName": "Inventories",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060400 - Disclosure - Fixed assets, net",
     "menuCat": "Notes",
     "order": "11",
     "role": "http://transact-tech.com/role/FixedAssetsNet",
     "shortName": "Fixed assets, net",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060500 - Disclosure - Intangible assets, net",
     "menuCat": "Notes",
     "order": "12",
     "role": "http://transact-tech.com/role/IntangibleAssetsNet",
     "shortName": "Intangible assets, net",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060600 - Disclosure - Accrued liabilities",
     "menuCat": "Notes",
     "order": "13",
     "role": "http://transact-tech.com/role/AccruedLiabilities",
     "shortName": "Accrued liabilities",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060700 - Disclosure - Retirement savings plan",
     "menuCat": "Notes",
     "order": "14",
     "role": "http://transact-tech.com/role/RetirementSavingsPlan",
     "shortName": "Retirement savings plan",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060800 - Disclosure - Borrowings",
     "menuCat": "Notes",
     "order": "15",
     "role": "http://transact-tech.com/role/Borrowings",
     "shortName": "Borrowings",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060900 - Disclosure - Stock incentive plans",
     "menuCat": "Notes",
     "order": "16",
     "role": "http://transact-tech.com/role/StockIncentivePlans",
     "shortName": "Stock incentive plans",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061000 - Disclosure - Income taxes",
     "menuCat": "Notes",
     "order": "17",
     "role": "http://transact-tech.com/role/IncomeTaxes",
     "shortName": "Income taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061100 - Disclosure - Earnings per share",
     "menuCat": "Notes",
     "order": "18",
     "role": "http://transact-tech.com/role/EarningsPerShare",
     "shortName": "Earnings per share",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:TreasuryStockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061200 - Disclosure - Stock repurchase program",
     "menuCat": "Notes",
     "order": "19",
     "role": "http://transact-tech.com/role/StockRepurchaseProgram",
     "shortName": "Stock repurchase program",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:TreasuryStockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "010000 - Statement - CONSOLIDATED BALANCE SHEETS",
     "menuCat": "Statements",
     "order": "2",
     "role": "http://transact-tech.com/role/ConsolidatedBalanceSheets",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061300 - Disclosure - Geographic area information",
     "menuCat": "Notes",
     "order": "20",
     "role": "http://transact-tech.com/role/GeographicAreaInformation",
     "shortName": "Geographic area information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061400 - Disclosure - Leases",
     "menuCat": "Notes",
     "order": "21",
     "role": "http://transact-tech.com/role/Leases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061500 - Disclosure - Quarterly results of operations (unaudited)",
     "menuCat": "Notes",
     "order": "22",
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited",
     "shortName": "Quarterly results of operations (unaudited)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:QuarterlyFinancialInformationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061600 - Disclosure - Change in accounting principle",
     "menuCat": "Notes",
     "order": "23",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrinciple",
     "shortName": "Change in accounting principle",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061700 - Disclosure - Subsequent events",
     "menuCat": "Notes",
     "order": "24",
     "role": "http://transact-tech.com/role/SubsequentEvents",
     "shortName": "Subsequent events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "070200 - Disclosure - Summary of significant accounting policies (Policies)",
     "menuCat": "Policies",
     "order": "25",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of significant accounting policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080200 - Disclosure - Summary of significant accounting policies (Tables)",
     "menuCat": "Tables",
     "order": "26",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables",
     "shortName": "Summary of significant accounting policies (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080300 - Disclosure - Inventories (Tables)",
     "menuCat": "Tables",
     "order": "27",
     "role": "http://transact-tech.com/role/InventoriesTables",
     "shortName": "Inventories (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080400 - Disclosure - Fixed assets, net (Tables)",
     "menuCat": "Tables",
     "order": "28",
     "role": "http://transact-tech.com/role/FixedAssetsNetTables",
     "shortName": "Fixed assets, net (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080500 - Disclosure - Intangible assets, net (Tables)",
     "menuCat": "Tables",
     "order": "29",
     "role": "http://transact-tech.com/role/IntangibleAssetsNetTables",
     "shortName": "Intangible assets, net (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U003",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "010100 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "menuCat": "Statements",
     "order": "3",
     "role": "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U003",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080600 - Disclosure - Accrued liabilities (Tables)",
     "menuCat": "Tables",
     "order": "30",
     "role": "http://transact-tech.com/role/AccruedLiabilitiesTables",
     "shortName": "Accrued liabilities (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080900 - Disclosure - Stock incentive plans (Tables)",
     "menuCat": "Tables",
     "order": "31",
     "role": "http://transact-tech.com/role/StockIncentivePlansTables",
     "shortName": "Stock incentive plans (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081000 - Disclosure - Income taxes (Tables)",
     "menuCat": "Tables",
     "order": "32",
     "role": "http://transact-tech.com/role/IncomeTaxesTables",
     "shortName": "Income taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081100 - Disclosure - Earnings per share (Tables)",
     "menuCat": "Tables",
     "order": "33",
     "role": "http://transact-tech.com/role/EarningsPerShareTables",
     "shortName": "Earnings per share (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081300 - Disclosure - Geographic area information (Tables)",
     "menuCat": "Tables",
     "order": "34",
     "role": "http://transact-tech.com/role/GeographicAreaInformationTables",
     "shortName": "Geographic area information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081400 - Disclosure - Leases (Tables)",
     "menuCat": "Tables",
     "order": "35",
     "role": "http://transact-tech.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tact:LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081500 - Disclosure - Quarterly results of operations (unaudited) (Tables)",
     "menuCat": "Tables",
     "order": "36",
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables",
     "shortName": "Quarterly results of operations (unaudited) (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081600 - Disclosure - Change in accounting principle (Tables)",
     "menuCat": "Tables",
     "order": "37",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleTables",
     "shortName": "Change in accounting principle (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unitRef": "U004",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090100 - Disclosure - Description of business (Details)",
     "menuCat": "Details",
     "order": "38",
     "role": "http://transact-tech.com/role/DescriptionOfBusinessDetails",
     "shortName": "Description of business (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "INF",
      "lang": null,
      "name": "tact:NumberOfSoftwareSolutions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U005",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unitRef": "U004",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090200 - Disclosure - Summary of significant accounting policies, Segment reporting (Details)",
     "menuCat": "Details",
     "order": "39",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails",
     "shortName": "Summary of significant accounting policies, Segment reporting (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "020000 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "menuCat": "Statements",
     "order": "4",
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:SellingAndMarketingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090202 - Disclosure - Summary of significant accounting policies, Allowance for doubtful accounts (Details)",
     "menuCat": "Details",
     "order": "40",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails",
     "shortName": "Summary of significant accounting policies, Allowance for doubtful accounts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20201231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090204 - Disclosure - Summary of significant accounting policies, Fixed assets (Details)",
     "menuCat": "Details",
     "order": "41",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
     "shortName": "Summary of significant accounting policies, Fixed assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231_RangeAxis_MinimumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090206 - Disclosure - Summary of significant accounting policies, Leases (Details)",
     "menuCat": "Details",
     "order": "42",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails",
     "shortName": "Summary of significant accounting policies, Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231_RangeAxis_MinimumMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseRemainingLeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:GoodwillAndIntangibleAssetImpairment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090208 - Disclosure - Summary of significant accounting policies, Goodwill and intangible assets (Details)",
     "menuCat": "Details",
     "order": "43",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails",
     "shortName": "Summary of significant accounting policies, Goodwill and intangible assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:GoodwillAndIntangibleAssetImpairment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090210 - Disclosure - Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)",
     "menuCat": "Details",
     "order": "44",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails",
     "shortName": "Summary of significant accounting policies, Revenue recognition - Disaggregation of revenue (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "tact:TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20210101to20211231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "tact:ContractWithCustomerRevenueRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090212 - Disclosure - Summary of significant accounting policies, Revenue recognition - Contract balances (Details)",
     "menuCat": "Details",
     "order": "45",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails",
     "shortName": "Summary of significant accounting policies, Revenue recognition - Contract balances (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20210101to20211231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "tact:ContractWithCustomerRevenueRecognized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090214 - Disclosure - Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)",
     "menuCat": "Details",
     "order": "46",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails",
     "shortName": "Summary of significant accounting policies, Revenue Recognition - Remaining performance obligations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090216 - Disclosure - Summary of significant accounting policies, Concentration of credit risk (Details)",
     "menuCat": "Details",
     "order": "47",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails",
     "shortName": "Summary of significant accounting policies, Concentration of credit risk (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231_ConcentrationRiskByBenchmarkAxis_AccountsReceivableMember_ConcentrationRiskByTypeAxis_CustomerConcentrationRiskMember_MajorCustomersAxis_ScientificGamesMember",
      "decimals": "0",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ResearchAndDevelopmentExpense",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090220 - Disclosure - Summary of significant accounting policies, Engineering, design and product development (Details)",
     "menuCat": "Details",
     "order": "48",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails",
     "shortName": "Summary of significant accounting policies, Engineering, design and product development (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CapitalizedComputerSoftwareNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090222 - Disclosure - Summary of significant accounting policies, Advertising (Details)",
     "menuCat": "Details",
     "order": "49",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails",
     "shortName": "Summary of significant accounting policies, Advertising (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:AdvertisingExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "030000 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS",
     "menuCat": "Statements",
     "order": "5",
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS",
     "subGroupType": "",
     "uniqueAnchor": null
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090300 - Disclosure - Inventories (Details)",
     "menuCat": "Details",
     "order": "50",
     "role": "http://transact-tech.com/role/InventoriesDetails",
     "shortName": "Inventories (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsAndSuppliesNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090400 - Disclosure - Fixed assets, net (Details)",
     "menuCat": "Details",
     "order": "51",
     "role": "http://transact-tech.com/role/FixedAssetsNetDetails",
     "shortName": "Fixed assets, net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090500 - Disclosure - Intangible assets, net (Details)",
     "menuCat": "Details",
     "order": "52",
     "role": "http://transact-tech.com/role/IntangibleAssetsNetDetails",
     "shortName": "Intangible assets, net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090600 - Disclosure - Accrued liabilities (Details)",
     "menuCat": "Details",
     "order": "53",
     "role": "http://transact-tech.com/role/AccruedLiabilitiesDetails",
     "shortName": "Accrued liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090700 - Disclosure - Retirement savings plan (Details)",
     "menuCat": "Details",
     "order": "54",
     "role": "http://transact-tech.com/role/RetirementSavingsPlanDetails",
     "shortName": "Retirement savings plan (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20200313_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090800 - Disclosure - Borrowings (Details)",
     "menuCat": "Details",
     "order": "55",
     "role": "http://transact-tech.com/role/BorrowingsDetails",
     "shortName": "Borrowings (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231_DebtInstrumentAxis_RevolvingCreditFacilitySienaLendingGroupLlcMember",
      "decimals": "4",
      "lang": null,
      "name": "us-gaap:DebtInstrumentInterestRateStatedPercentage",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U007",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090900 - Disclosure - Stock incentive plans, Stock incentive plans (Details)",
     "menuCat": "Details",
     "order": "56",
     "role": "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
     "shortName": "Stock incentive plans, Stock incentive plans (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "tact:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U007",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231_AwardTypeAxis_EmployeeStockOptionMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
      "reportCount": 1,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090902 - Disclosure - Stock incentive plans, Assumptions used in option valuation calculations (Details)",
     "menuCat": "Details",
     "order": "57",
     "role": "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
     "shortName": "Stock incentive plans, Assumptions used in option valuation calculations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231_PlanNameAxis_EquityIncentivePlan2014Member",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090904 - Disclosure - Stock incentive plans, Share-based compensation expense (Details)",
     "menuCat": "Details",
     "order": "58",
     "role": "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails",
     "shortName": "Stock incentive plans, Share-based compensation expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "090906 - Disclosure - Stock incentive plans, Stock options (Details)",
     "menuCat": "Details",
     "order": "59",
     "role": "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails",
     "shortName": "Stock incentive plans, Stock options (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20201231_StatementEquityComponentsAxis_CommonStockMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "040000 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY",
     "menuCat": "Statements",
     "order": "6",
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
     "shortName": "CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20201231_StatementEquityComponentsAxis_CommonStockMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091000 - Disclosure - Income taxes, Components of income tax benefit (Details)",
     "menuCat": "Details",
     "order": "60",
     "role": "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails",
     "shortName": "Income taxes, Components of income tax benefit (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091002 - Disclosure - Income taxes, Deferred tax assets and liabilities (Details)",
     "menuCat": "Details",
     "order": "61",
     "role": "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails",
     "shortName": "Income taxes, Deferred tax assets and liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "us-gaap:SummaryOfValuationAllowanceTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091004 - Disclosure - Income taxes, Valuation allowance on deferred tax assets (Details)",
     "menuCat": "Details",
     "order": "62",
     "role": "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails",
     "shortName": "Income taxes, Valuation allowance on deferred tax assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20201231_ValuationAllowancesAndReservesTypeAxis_ValuationAllowanceOperatingLossCarryforwardsMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "3",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unitRef": "U006",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091006 - Disclosure - Income taxes, Statutory to effective tax rate reconciliation (Details)",
     "menuCat": "Details",
     "order": "63",
     "role": "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails",
     "shortName": "Income taxes, Statutory to effective tax rate reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "3",
      "lang": null,
      "name": "tact:EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "us-gaap:SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091008 - Disclosure - Income taxes, Unrecognized tax benefits (Details)",
     "menuCat": "Details",
     "order": "64",
     "role": "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails",
     "shortName": "Income taxes, Unrecognized tax benefits (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "us-gaap:SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091100 - Disclosure - Earnings per share (Details)",
     "menuCat": "Details",
     "order": "65",
     "role": "http://transact-tech.com/role/EarningsPerShareDetails",
     "shortName": "Earnings per share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U002",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockRepurchasedDuringPeriodShares",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U002",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091200 - Disclosure - Stock repurchase program (Details)",
     "menuCat": "Details",
     "order": "66",
     "role": "http://transact-tech.com/role/StockRepurchaseProgramDetails",
     "shortName": "Stock repurchase program (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockRepurchasedDuringPeriodShares",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U002",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091300 - Disclosure - Geographic area information (Details)",
     "menuCat": "Details",
     "order": "67",
     "role": "http://transact-tech.com/role/GeographicAreaInformationDetails",
     "shortName": "Geographic area information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231_ConcentrationRiskByBenchmarkAxis_SalesRevenueNetMember_ConcentrationRiskByTypeAxis_GeographicConcentrationRiskMember_StatementGeographicalAxis_InternationalMember",
      "decimals": "2",
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U006",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:OperatingLeaseExpense",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091400 - Disclosure - Leases (Details)",
     "menuCat": "Details",
     "order": "68",
     "role": "http://transact-tech.com/role/LeasesDetails",
     "shortName": "Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:OperatingLeaseExpense",
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091500 - Disclosure - Quarterly results of operations (unaudited) (Details)",
     "menuCat": "Details",
     "order": "69",
     "role": "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails",
     "shortName": "Quarterly results of operations (unaudited) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "050000 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "menuCat": "Statements",
     "order": "7",
     "role": "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryNet",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091600 - Disclosure - Change in accounting principle, Effect of Change on Balance Sheets (Details)",
     "menuCat": "Details",
     "order": "70",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
     "shortName": "Change in accounting principle, Effect of Change on Balance Sheets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20201231",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RetainedEarningsAccumulatedDeficit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211001to20211231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CostOfRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091602 - Disclosure - Change in accounting principle, Effect of Change on Statements of Operations (Details)",
     "menuCat": "Details",
     "order": "71",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
     "shortName": "Change in accounting principle, Effect of Change on Statements of Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211001to20211231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CostOfRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091604 - Disclosure - Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details)",
     "menuCat": "Details",
     "order": "72",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
     "shortName": "Change in accounting principle, Effect of Change on Statements of Comprehensive Income (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211001to20211231_RestatementAxis_ScenarioPreviouslyReportedMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ComprehensiveIncomeNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20221001to20221231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091606 - Disclosure - Change in accounting principle, Effect of Change on Statements of Cash Flows (Details)",
     "menuCat": "Details",
     "order": "73",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
     "shortName": "Change in accounting principle, Effect of Change on Statements of Cash Flows (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20210101to20211231_RestatementAxis_ScenarioPreviouslyReportedMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DeferredIncomeTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "div",
       "td",
       "tr",
       "table",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20211231",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091608 - Disclosure - Change in accounting principle, Effect of Change on Statements of Changes in Shareholders' Equity (Details)",
     "menuCat": "Details",
     "order": "74",
     "role": "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
     "shortName": "Change in accounting principle, Effect of Change on Statements of Changes in Shareholders' Equity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "tact:ProceedsFromEmployeeRetentionCredit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "091702 - Disclosure - Subsequent events (Details)",
     "menuCat": "Details",
     "order": "75",
     "role": "http://transact-tech.com/role/SubsequentEventsDetails",
     "shortName": "Subsequent events (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20230101to20230331_SubsequentEventTypeAxis_SubsequentEventMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "tact:ProceedsFromEmployeeRetentionCredit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "U001",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060100 - Disclosure - Description of business",
     "menuCat": "Notes",
     "order": "8",
     "role": "http://transact-tech.com/role/DescriptionOfBusiness",
     "shortName": "Description of business",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NatureOfOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060200 - Disclosure - Summary of significant accounting policies",
     "menuCat": "Notes",
     "order": "9",
     "role": "http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies",
     "shortName": "Summary of significant accounting policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "baseRef": "form10k2022.htm",
      "contextRef": "c20220101to20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 57,
   "tag": {
    "country_CA": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CANADA",
        "terseLabel": "Canada [Member]"
       }
      }
     },
     "localname": "CA",
     "nsuri": "http://xbrl.sec.gov/country/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States [Member]"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r699",
      "r700",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm ID"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r699",
      "r700",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r699",
      "r700",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r699",
      "r700",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
        "label": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r702"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
        "label": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "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 One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 2 such as Street or Suite number",
        "label": "Entity Address, Address Line Two"
       }
      }
     },
     "localname": "EntityAddressAddressLine2",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine3": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 3 such as an Office Park",
        "label": "Entity Address, Address Line Three"
       }
      }
     },
     "localname": "EntityAddressAddressLine3",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCountry": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "ISO 3166-1 alpha-2 country code.",
        "label": "Entity Address, Country"
       }
      }
     },
     "localname": "EntityAddressCountry",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "countryCodeItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
        "label": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
        "label": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "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 or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r703"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
        "label": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r697"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r704"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_IcfrAuditorAttestationFlag": {
     "auth_ref": [
      "r699",
      "r700",
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "localname": "IcfrAuditorAttestationFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_NoTradingSymbolFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a security having no trading symbol.",
        "label": "No Trading Symbol Flag"
       }
      }
     },
     "localname": "NoTradingSymbolFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "trueItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r696"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r698"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://transact-tech.com/role/DocumentAndEntityInformation"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "srt_ConsolidationItemsAxis": {
     "auth_ref": [
      "r251",
      "r315",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r336",
      "r378",
      "r379",
      "r380",
      "r381",
      "r383",
      "r384",
      "r386",
      "r388",
      "r389",
      "r747",
      "r748"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]"
       }
      }
     },
     "localname": "ConsolidationItemsAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ConsolidationItemsDomain": {
     "auth_ref": [
      "r251",
      "r315",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r332",
      "r336",
      "r378",
      "r379",
      "r380",
      "r381",
      "r383",
      "r384",
      "r386",
      "r388",
      "r389",
      "r747",
      "r748"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]"
       }
      }
     },
     "localname": "ConsolidationItemsDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_EuropeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Europe [Member]"
       }
      }
     },
     "localname": "EuropeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r342",
      "r682",
      "r752",
      "r811"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r374",
      "r375",
      "r376",
      "r377",
      "r443",
      "r609",
      "r629",
      "r657",
      "r658",
      "r679",
      "r687",
      "r695",
      "r749",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r374",
      "r375",
      "r376",
      "r377",
      "r443",
      "r609",
      "r629",
      "r657",
      "r658",
      "r679",
      "r687",
      "r695",
      "r749",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r342",
      "r682",
      "r752",
      "r811"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Domain]"
       }
      }
     },
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ProductOrServiceAxis": {
     "auth_ref": [
      "r338",
      "r611",
      "r680",
      "r693",
      "r745",
      "r746",
      "r752",
      "r810"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "localname": "ProductOrServiceAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ProductsAndServicesDomain": {
     "auth_ref": [
      "r338",
      "r611",
      "r680",
      "r693",
      "r745",
      "r746",
      "r752",
      "r810"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "localname": "ProductsAndServicesDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r374",
      "r375",
      "r376",
      "r377",
      "r441",
      "r443",
      "r474",
      "r475",
      "r476",
      "r608",
      "r609",
      "r629",
      "r657",
      "r658",
      "r679",
      "r687",
      "r695",
      "r744",
      "r749",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r374",
      "r375",
      "r376",
      "r377",
      "r441",
      "r443",
      "r474",
      "r475",
      "r476",
      "r608",
      "r609",
      "r629",
      "r657",
      "r658",
      "r679",
      "r687",
      "r695",
      "r744",
      "r749",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ReportableGeographicalComponentsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reportable Geographical Components [Member]"
       }
      }
     },
     "localname": "ReportableGeographicalComponentsMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RestatementAxis": {
     "auth_ref": [
      "r206",
      "r258",
      "r259",
      "r260",
      "r264",
      "r265",
      "r269",
      "r270",
      "r271",
      "r272",
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r296",
      "r358",
      "r359",
      "r514",
      "r540",
      "r545",
      "r546",
      "r547",
      "r584",
      "r602",
      "r603",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revision of Prior Period [Axis]"
       }
      }
     },
     "localname": "RestatementAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RestatementDomain": {
     "auth_ref": [
      "r206",
      "r258",
      "r259",
      "r260",
      "r264",
      "r265",
      "r269",
      "r270",
      "r271",
      "r272",
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r296",
      "r358",
      "r359",
      "r514",
      "r540",
      "r545",
      "r546",
      "r547",
      "r584",
      "r602",
      "r603",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revision of Prior Period [Domain]"
       }
      }
     },
     "localname": "RestatementDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember": {
     "auth_ref": [
      "r264",
      "r265"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of Change [Member]"
       }
      }
     },
     "localname": "RevisionOfPriorPeriodChangeInAccountingPrincipleAdjustmentMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScenarioPreviouslyReportedMember": {
     "auth_ref": [
      "r206",
      "r258",
      "r260",
      "r264",
      "r265",
      "r269",
      "r270",
      "r278",
      "r296",
      "r514",
      "r540",
      "r545",
      "r546",
      "r584",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641",
      "r727",
      "r728",
      "r729",
      "r730",
      "r731",
      "r738",
      "r739",
      "r792",
      "r799",
      "r800"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Previously Reported [Member]"
       }
      }
     },
     "localname": "ScenarioPreviouslyReportedMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r339",
      "r340",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r681",
      "r694",
      "r752"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r339",
      "r340",
      "r643",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r656",
      "r681",
      "r694",
      "r752"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsDisclosureLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Valuation and Qualifying Accounts Disclosure [Line Items]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsDisclosureLineItems",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "auth_ref": [
      "r252",
      "r253",
      "r254",
      "r256",
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Valuation and Qualifying Accounts Disclosure [Table]"
       }
      }
     },
     "localname": "ValuationAndQualifyingAccountsDisclosureTable",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "tact_CasinoAndGamingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of thermal ticket printers used in slot machines, video lottery terminals, and other gaming machines that print tickets or receipts instead of issuing coins at casinos and racetracks and other gaming venues worldwide.",
        "label": "Casino and Gaming [Member]",
        "terseLabel": "Casino and Gaming [Member]"
       }
      }
     },
     "localname": "CasinoAndGamingMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Change in method of inventory valuation from \"standard costing which approximates FIFO\" to the average costing methodology.",
        "label": "Change in Method of Inventory Valuation to Average Costing Methodology [Member]",
        "terseLabel": "Change in Method of Inventory Valuation to Average Costing [Member]"
       }
      }
     },
     "localname": "ChangeInMethodOfInventoryValuationToAverageCostingMethodologyMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ComputerSoftwareAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Computer software, including but not limited to, acquired and internally developed computer software, and long-lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.",
        "label": "Computer Software and Equipment [Member]",
        "terseLabel": "Computer Software and Equipment [Member]"
       }
      }
     },
     "localname": "ComputerSoftwareAndEquipmentMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ContractWithCustomerAssetLiabilityNet": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right (asset) to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time and the amount of obligation (liability) to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Asset (Liability), net",
        "totalLabel": "Net contract (liabilities) assets"
       }
      }
     },
     "localname": "ContractWithCustomerAssetLiabilityNet",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": 3.0,
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer related to customer prepayments for which consideration has been received or is receivable, classified as current.",
        "label": "Contract with Customer, Liability for Customer Prepayments, Current",
        "negatedLabel": "Customer pre-payments"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityForCustomerPrepaymentsCurrent",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_ContractWithCustomerRevenueRecognized": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized related to obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Contract with Customer, Revenue Recognized",
        "terseLabel": "Revenue recognized"
       }
      }
     },
     "localname": "ContractWithCustomerRevenueRecognized",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_Covid19Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The novel coronavirus (COVID-19) categorized as a pandemic by the World Health Organization.",
        "label": "Covid-19 [Member]",
        "terseLabel": "COVID-19 [Member]"
       }
      }
     },
     "localname": "Covid19Member",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_DebtInstrumentFinancialCovenantEligibleAccountsReceivable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible accounts receivable included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Accounts Receivable",
        "terseLabel": "Percentage of eligible accounts receivable"
       }
      }
     },
     "localname": "DebtInstrumentFinancialCovenantEligibleAccountsReceivable",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventory": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum value of eligible raw material and finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory",
        "terseLabel": "Eligible inventory"
       }
      }
     },
     "localname": "DebtInstrumentFinancialCovenantEligibleInventory",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible finished goods inventory included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory, Finished Goods Inventory, Percentage",
        "terseLabel": "Percentage of eligible finished goods inventory"
       }
      }
     },
     "localname": "DebtInstrumentFinancialCovenantEligibleInventoryFinishedGoodsInventoryPercentage",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of eligible raw material included in the calculation of borrowing base imposed by the financial covenants of the debt instrument.",
        "label": "Debt Instrument, Financial Covenant, Eligible Inventory, Raw Material, Percentage",
        "terseLabel": "Percentage of eligible raw material"
       }
      }
     },
     "localname": "DebtInstrumentFinancialCovenantEligibleInventoryRawMaterialPercentage",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash required under a new \"springing\" deposit account control agreement, permitting the Company to direct the use of funds in its deposit account.",
        "label": "Debt Instrument, Minimum excess availability and unrestricted cash",
        "terseLabel": "Minimum excess availability and unrestricted cash required"
       }
      }
     },
     "localname": "DebtInstrumentMinimumExcessAvailabilityAndUnrestrictedCash",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum principal amount, whether or not such amount of loans is actually outstanding, on which interest is paid if the Company does not have the ability to direct the use of funds in the deposit account under the Amended Fee Letter.",
        "label": "Debt Instrument, Minimum principal amount on which interest is paid",
        "terseLabel": "Minimum principal amount on which interest is paid"
       }
      }
     },
     "localname": "DebtInstrumentMinimumPrincipalAmountOnWhichInterestIsPaid",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum principal amount of outstanding borrowings that must be maintained in order to retain the ability to direct the use of funds in the deposit account under the Amended Fee Letter.",
        "label": "Debt Instrument, Minimum principal amount to be maintained to direct use of funds in deposit account",
        "terseLabel": "Minimum principal amount to be maintained to direct use of funds in deposit account"
       }
      }
     },
     "localname": "DebtInstrumentMinimumPrincipalAmountToBeMaintainedToDirectUseOfFundsInDepositAccount",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The period of time the minimum sum of (1) excess availability under the Siena Credit Facility (as amended by the Credit Facility Amendment) and (2) unrestricted cash must be maintained, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Debt Instrument, Period to maintain excess availability and unrestricted cash",
        "terseLabel": "Number of days to maintain excess availability and unrestricted cash"
       }
      }
     },
     "localname": "DebtInstrumentPeriodToMaintainExcessAvailabilityAndUnrestrictedCash",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "tact_DescriptionOfBusinessAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of business [Abstract]"
       }
      }
     },
     "localname": "DescriptionOfBusinessAbstract",
     "nsuri": "http://transact-tech.com/20221231",
     "xbrltype": "stringItemType"
    },
    "tact_EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to forgiveness of a long under the Paycheck Protection Program (PPP) administered by the Small Business Administration established under Division A, Title I of the Coronavirus Aid, Relief, and Economic Security (\"CARES\") Act.",
        "label": "Effective Income Tax Rate Reconciliation, Loan Forgiveness, Percent",
        "terseLabel": "PPP loan forgiveness"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationLoanForgivenessPercent",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 miscellaneous permanent items.",
        "label": "Effective Income Tax Rate Reconciliation, Miscellaneous Permanent Items, Percent",
        "terseLabel": "Miscellaneous permanent items"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationMiscellaneousPermanentItemsPercent",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_EmployeeRetentionCreditReceivableAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Retention Credit Receivable [Abstract]",
        "terseLabel": "Subsequent events [Abstract]"
       }
      }
     },
     "localname": "EmployeeRetentionCreditReceivableAbstract",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "tact_EquityAwardsAggregateIntrinsicValueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards, Aggregate Intrinsic Value [Abstract]",
        "terseLabel": "Aggregate Intrinsic Value [Abstract]"
       }
      }
     },
     "localname": "EquityAwardsAggregateIntrinsicValueAbstract",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "tact_EquityAwardsWeightedAverageRemainingContractualTermAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards, Weighted-Average Remaining Contractual Term [Abstract]",
        "terseLabel": "Remaining Term [Abstract]"
       }
      }
     },
     "localname": "EquityAwardsWeightedAverageRemainingContractualTermAbstract",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "tact_EquityIncentivePlan2005AndEquityIncentivePlan2014Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock incentive plans which provide for awards to executives, key employees, directors and consultants.",
        "label": "Equity Incentive Plan 2005 and Equity Incentive Plan 2014 [Member]",
        "terseLabel": "2005 Equity Incentive Plan and 2014 Equity Incentive Plan [Member]"
       }
      }
     },
     "localname": "EquityIncentivePlan2005AndEquityIncentivePlan2014Member",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_EquityIncentivePlan2014Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock incentive plan which provides for awards to executives, key employees, directors and consultants.",
        "label": "Equity Incentive Plan 2014 [Member]",
        "terseLabel": "2014 Equity Incentive Plan [Member]"
       }
      }
     },
     "localname": "EquityIncentivePlan2014Member",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ExtendedProductWarrantyPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The extended warranty period on company products, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Extended Product Warranty Period",
        "terseLabel": "Product warranty period"
       }
      }
     },
     "localname": "ExtendedProductWarrantyPeriod",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "tact_FacilityInHamdenConnecticutMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The company's executive offices and sales office located in Hamden, Connecticut.",
        "label": "Facility in Hamden, Connecticut [Member]"
       }
      }
     },
     "localname": "FacilityInHamdenConnecticutMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_FacilityInLasVegasNevadaMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Facility located in Las Vegas, Nevada.",
        "label": "Facility in Las Vegas, Nevada [Member]",
        "terseLabel": "Facility in Las Vegas, Nevada [Member]"
       }
      }
     },
     "localname": "FacilityInLasVegasNevadaMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after 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": "Finite-Lived Intangible Asset, Expected Amortization, After Year Three",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetExpectedAmortizationAfterYearThree",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_FixedAssetsExcludingConstructionInProcessMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fixed assets excluding construction in-process. Includes tooling, machinery and equipment, furniture and office equipment, computer software and equipment, and leasehold improvements.",
        "label": "Fixed Assets, Excluding Construction in-Process [Member]",
        "terseLabel": "Fixed Assets, Excluding Construction in-Process [Member]"
       }
      }
     },
     "localname": "FixedAssetsExcludingConstructionInProcessMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_FoodServiceTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of the BOHA! ecosystem, which combines the latest generation terminal, cloud-based software applications and related hardware into a unique solution to automate operations with food production in the back-of-house operations in restaurants and food service operations.",
        "label": "Food Service Technology [Member]",
        "terseLabel": "Food Service Technology [Member]"
       }
      }
     },
     "localname": "FoodServiceTechnologyMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_FurnitureAndOfficeEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and tangible personal property used in an office setting. Examples include, but are not limited to, computers, copiers and fax machine.",
        "label": "Furniture and Office Equipment [Member]",
        "terseLabel": "Furniture and Office Equipment [Member]"
       }
      }
     },
     "localname": "FurnitureAndOfficeEquipmentMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_GainFromEmployeeRetentionCredit": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of gain from the Employee Retention Credit, a refundable tax credit against certain employment taxes equal to 50% of the qualified wages an eligible employer pays to employees after March 12, 2020, and before January 1, 2021.",
        "label": "Gain from Employee Retention Credit",
        "terseLabel": "Gain from employee retention credit"
       }
      }
     },
     "localname": "GainFromEmployeeRetentionCredit",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_IncreaseDecreaseInEmployeeRetentionCreditReceivable": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in current assets classified as employee retention credit receivable.",
        "label": "Increase (Decrease) in Employee Retention Credit Receivable",
        "negatedLabel": "Employee retention credit receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInEmployeeRetentionCreditReceivable",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_IncreaseDecreaseInOperatingLeaseRightOfUseAsset": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in operating lease right-of-use asset.",
        "label": "Increase (Decrease) in Operating Lease Right-of-use Asset",
        "terseLabel": "Increase (decrease) in right-of-use-asset"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingLeaseRightOfUseAsset",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_InternationalGameTechnologyPlcMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "International Game Technology PLC, formerly Gtech S.p.A. and Lottomatica S.p.A., is a multinational gaming company that produces slot machines and other gaming technology.",
        "label": "International Game Technology PLC [Member]",
        "terseLabel": "IGT [Member]"
       }
      }
     },
     "localname": "InternationalGameTechnologyPlcMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_InternationalMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other countries outside of the United States.",
        "label": "International [Member]"
       }
      }
     },
     "localname": "InternationalMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of information related to lessee's operating leases, including weighted average lease term and discount rate.",
        "label": "Lessee, Operating Lease, Lease Term and Discount Rate [Table Text Block]",
        "terseLabel": "Additional Information Related to Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLeaseTermAndDiscountRateTableTextBlock",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tact_LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental information for the statement of cash flows related to operating leases.",
        "label": "Lessee, Operating Lease, Supplemental Disclosure for Cash Flows [Table Text Block]",
        "terseLabel": "Cash Flows for Operating Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseSupplementalDisclosureForCashFlowsTableTextBlock",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "tact_LotteryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of thermal on-line and other lottery printers primarily to International Game Technology and its subsidiaries (\"IGT\") and, to a lesser extent, other lottery system companies for various lottery applications.",
        "label": "Lottery [Member]",
        "terseLabel": "Lottery [Member]"
       }
      }
     },
     "localname": "LotteryMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_NcrCorporationMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "NCR Corporation, previously known as National Cash Register, is an American software, consulting and technology company providing several professional services and electronic products.",
        "label": "NCR Corporation [Member]",
        "terseLabel": "NCR Corporation [Member]"
       }
      }
     },
     "localname": "NcrCorporationMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_NumberOfManufacturers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of manufacturers located in China and Thailand.",
        "label": "Number of manufacturers",
        "terseLabel": "Number of manufacturers in China and Thailand"
       }
      }
     },
     "localname": "NumberOfManufacturers",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "tact_NumberOfSoftwareSolutions": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of software solutions from the after-market side of the business.",
        "label": "Number of software solutions",
        "terseLabel": "Number of software solutions from the after-market side of the business"
       }
      }
     },
     "localname": "NumberOfSoftwareSolutions",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "tact_OperatingLossCarryforwardsNotSubjectToExpiration": {
     "auth_ref": [],
     "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 that are not subject to expiration dates.",
        "label": "Operating Loss Carryforwards, Not Subject to Expiration",
        "terseLabel": "Net operating loss carryforwards not subject to expiration"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsNotSubjectToExpiration",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_OperatingLossCarryforwardsSubjectToExpiration": {
     "auth_ref": [],
     "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 that are subject to expiration dates.",
        "label": "Operating Loss Carryforwards, Subject to Expiration",
        "terseLabel": "Net operating loss carryforwards subject to expiration"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsSubjectToExpiration",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_PacificRimMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Geographic area surrounding the edges of the Pacific Ocean. The Pacific Rim covers the western shores of North America and South America, in addition to Australia, eastern Asia and the islands of the Pacific.",
        "label": "Pacific Rim [Member]",
        "terseLabel": "Pacific Rim [Member]"
       }
      }
     },
     "localname": "PacificRimMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_PaycheckProtectionProgramLoanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Paycheck Protection Program loans are authorized by the Coronavirus Aid, Relief and Economic Security Act, Section 7(a)(36) of the Small Business Act (the \"CARES Act\") to provide forgivable loans to small businesses.",
        "label": "Paycheck Protection Program Loan [Member]",
        "terseLabel": "PPP Loan [Member]"
       }
      }
     },
     "localname": "PaycheckProtectionProgramLoanMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_PaymentsForProceedsFromNotesReceivable": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The net amount associated with payments for (receipts from) principal collections from a borrowing supported by a written promise to pay an obligation.",
        "label": "Payments for (Proceeds from) Notes Receivable",
        "negatedLabel": "Collection of note receivable"
       }
      }
     },
     "localname": "PaymentsForProceedsFromNotesReceivable",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_PercentageReductionInCashRetainerFees": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage reduction in cash retainer fees for all non-employee directors.",
        "label": "Percentage reduction in cash retainer fees",
        "terseLabel": "Percentage reduction in cash retainer fees for all non-employee directors"
       }
      }
     },
     "localname": "PercentageReductionInCashRetainerFees",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_PercentageReductionInSalaries": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage reduction in salaries of all salaried, non-commissioned employees, including executive officers.",
        "label": "Percentage reduction in salaries",
        "terseLabel": "Percentage reduction in salaries of all salaried, non-commissioned employees, including executive officers"
       }
      }
     },
     "localname": "PercentageReductionInSalaries",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_PercentageReductionInWorkforce": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage reduction in the Company's workforce due to employee terminations and temporary furloughs.",
        "label": "Percentage reduction in workforce",
        "terseLabel": "Percentage reduction in workforce"
       }
      }
     },
     "localname": "PercentageReductionInWorkforce",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_PosAutomationAndBankingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of thermal printers used primarily by restaurants (including fine dining, casual dining, quick serve and hospitality establishments) located either at the checkout counter or within self-service kiosks to print receipts for consumers or print on linerless labels.",
        "label": "POS Automation and Banking [Member]",
        "terseLabel": "POS Automation [Member]"
       }
      }
     },
     "localname": "PosAutomationAndBankingMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_PrintrexMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sales of branded printers wide format, desktop and rack mounted and vehicle mounted black/white thermal printers used by customers to log and plot oil field, seismic and down hole well drilling data in the oil and gas exploration industry.",
        "label": "Printrex [Member]",
        "terseLabel": "Printrex [Member]"
       }
      }
     },
     "localname": "PrintrexMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ProceedsFromEmployeeRetentionCredit": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow associated with employee retention credit receivable from the U.S. Government.",
        "label": "Proceeds from Employee retention credit",
        "terseLabel": "Employee retention credit receivable collected"
       }
      }
     },
     "localname": "ProceedsFromEmployeeRetentionCredit",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_RevolvingCreditFacilitySienaLendingGroupLlcMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Arrangement with Siena Lending Group LLC that provides a revolving credit line, subject to a borrowing base.",
        "label": "Revolving Credit Facility, Siena Lending Group Llc [Member]",
        "terseLabel": "Sienna Credit Facility [Member]"
       }
      }
     },
     "localname": "RevolvingCreditFacilitySienaLendingGroupLlcMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ScientificGamesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Scientific Games is a world leader in entertainment offering dynamic games, systems and services for casino, lottery, social gaming, online gaming and sports betting.",
        "label": "Scientific Games [Member]",
        "terseLabel": "Chain Link Services [Member]"
       }
      }
     },
     "localname": "ScientificGamesMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were exercised during the period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Exercises in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Exercised (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExercisesInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans for which the right to exercise has lapsed under the terms of the plan agreements.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Expirations, Weighted Average Grant Date Fair Value",
        "terseLabel": "Expired (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpirationsWeightedAverageGrantDateFairValue",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exercise price of awards granted under the plans as a percentage of the fair market value of the Company's common stock at the date of grant.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Exercise Price as Percentage of Fair Market Value of Common Stock at Date of Grant",
        "terseLabel": "Exercise price as a percentage of fair market value of common stock at date of grant"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardExercisePriceAsPercentageOfFairMarketValueOfCommonStockAtDateOfGrant",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "tact_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of stock incentive plans.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of stock incentive plans",
        "terseLabel": "Number of stock incentive plans"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfStockIncentivePlans",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "tact_TaxCreditCarryforwardAmountSubjectToExpiration": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws that are subject to expiration dates.",
        "label": "Tax Credit Carryforward, Amount, Subject to Expiration",
        "terseLabel": "Tax credit carryforwards subject to expiration"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAmountSubjectToExpiration",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "tact_TaxCreditCarryforwardExpirationPeriod": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period remaining before the tax credit carryforward expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Tax Credit Carryforward, Expiration Period",
        "terseLabel": "Life of tax credit carry forward"
       }
      }
     },
     "localname": "TaxCreditCarryforwardExpirationPeriod",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "tact_TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period the customer receives free maintenance upon completion of EPICENTRAL installation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Term of free maintenance upon completion of software installation",
        "terseLabel": "Term of free maintenance upon completion of software installation"
       }
      }
     },
     "localname": "TermOfFreeMaintenanceUponCompletionOfSoftwareInstallation",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "tact_TheBrightGroupMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Bright Groups a dynamic Australian-based manufacturing services group.",
        "label": "The Bright Group [Member]"
       }
      }
     },
     "localname": "TheBrightGroupMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "tact_TransactServicesGroupMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from range of supplies and consumables used in the printing and scanning activities of customers in the restaurant and hospitality, banking, retail, casino and gaming, government and oil and gas exploration markets.",
        "label": "TransAct Services Group [Member]",
        "terseLabel": "TransAct Services Group [Member]"
       }
      }
     },
     "localname": "TransactServicesGroupMember",
     "nsuri": "http://transact-tech.com/20221231",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in accounting principle [Abstract]"
       }
      }
     },
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Summary of significant accounting policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for doubtful accounts [Abstract]"
       }
      }
     },
     "localname": "AccountsNotesLoansAndFinancingReceivableGrossAllowanceAndNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r19"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued liabilities"
       }
      }
     },
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r18",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.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"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableMember": {
     "auth_ref": [
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold.",
        "label": "Accounts Receivable [Member]"
       }
      }
     },
     "localname": "AccountsReceivableMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r344",
      "r345"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Accounts receivable, net"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r23"
     ],
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. 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).",
        "label": "Accrued liabilities",
        "totalLabel": "Accrued liabilities"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "auth_ref": [
      "r23"
     ],
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Professional and consulting"
       }
      }
     },
     "localname": "AccruedProfessionalFeesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r101",
      "r215"
     ],
     "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": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "negatedLabel": "Less: Accumulated depreciation and amortization"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r33",
      "r34",
      "r35",
      "r223",
      "r625",
      "r637",
      "r641"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.",
        "label": "Accumulated other comprehensive (loss) income, net of tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r32",
      "r35",
      "r167",
      "r603",
      "r632",
      "r633",
      "r711",
      "r712",
      "r713",
      "r724",
      "r725",
      "r726"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.",
        "label": "AOCI Attributable to Parent [Member]",
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Member]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r10"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.",
        "label": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r484",
      "r485",
      "r486",
      "r724",
      "r725",
      "r726",
      "r791"
     ],
     "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]"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForChangeInAccountingPrincipleAxis": {
     "auth_ref": [
      "r264",
      "r265",
      "r266",
      "r268"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of change in accounting principle. Excludes change from amendment to accounting standards.",
        "label": "Change in Accounting Principle, Type [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForChangeInAccountingPrincipleAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r145",
      "r146",
      "r445"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Share-based compensation expense"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net loss to net cash used in operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r489"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for advertising cost.",
        "label": "Advertising"
       }
      }
     },
     "localname": "AdvertisingCostsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r490"
     ],
     "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"
       }
      }
     },
     "localname": "AdvertisingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r478"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Share-Based Payment Arrangement, Expense",
        "terseLabel": "Share-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r224",
      "r346",
      "r360"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "periodEndLabel": "Balance, end of period",
        "periodStartLabel": "Balance, beginning of period"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Allowance for doubtful accounts [Roll Forward]"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r362"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Deductions"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r58",
      "r91",
      "r97"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
        "label": "Amortization expense"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r293"
     ],
     "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": "Anti-dilutive securities excluded from computation of earnings per dilutive share (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r70"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "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": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r70"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.",
        "label": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r180",
      "r192",
      "r219",
      "r247",
      "r318",
      "r328",
      "r334",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r532",
      "r534",
      "r552",
      "r692",
      "r747",
      "r748",
      "r801"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets:"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsAndLiabilitiesLesseeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets and Liabilities, Lessee [Abstract]",
        "terseLabel": "Leases [Abstract]"
       }
      }
     },
     "localname": "AssetsAndLiabilitiesLesseeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r210",
      "r228",
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r532",
      "r534",
      "r552",
      "r692",
      "r747",
      "r748",
      "r801"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsNoncurrent": {
     "auth_ref": [
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r532",
      "r534",
      "r552",
      "r747",
      "r748",
      "r801"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.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 after one year or beyond the normal operating cycle, if longer.",
        "label": "Assets, Noncurrent",
        "totalLabel": "Total noncurrent assets"
       }
      }
     },
     "localname": "AssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r449",
      "r450",
      "r451",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location on balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Axis]"
       }
      }
     },
     "localname": "BalanceSheetLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "auth_ref": [
      "r168",
      "r169"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Domain]"
       }
      }
     },
     "localname": "BalanceSheetLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r67"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity.",
        "label": "Basis of Presentation and Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of significant accounting policies"
       }
      }
     },
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BuildingMember": {
     "auth_ref": [
      "r100"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities.",
        "label": "Building [Member]",
        "terseLabel": "Facility in Ithaca, New York [Member]"
       }
      }
     },
     "localname": "BuildingMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CapitalExpendituresIncurredButNotYetPaid": {
     "auth_ref": [
      "r63",
      "r64",
      "r65"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.",
        "label": "Non-cash capital expenditure items"
       }
      }
     },
     "localname": "CapitalExpendituresIncurredButNotYetPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareAmortization1": {
     "auth_ref": [
      "r200",
      "r202"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for amortization of capitalized computer software costs.",
        "label": "Capitalized Computer Software, Amortization",
        "terseLabel": "Amortization of capitalized software development costs"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareAmortization1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalizedComputerSoftwareNet": {
     "auth_ref": [
      "r659"
     ],
     "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": "Unamortized development costs of software"
       }
      }
     },
     "localname": "CapitalizedComputerSoftwareNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r60",
      "r213",
      "r661"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "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"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r61"
     ],
     "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]",
        "terseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r54",
      "r60",
      "r66"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "periodEndLabel": "Cash and cash equivalents, end of period",
        "periodStartLabel": "Cash and cash equivalents, beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r54",
      "r174"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including 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), Including Exchange Rate Effect",
        "totalLabel": "(Decrease) increase in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashFlowOperatingActivitiesLesseeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow, Operating Activities, Lessee [Abstract]",
        "terseLabel": "Cash Flows Related to Operating Leases [Abstract]"
       }
      }
     },
     "localname": "CashFlowOperatingActivitiesLesseeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ChangeInAccountingPrincipleMember": {
     "auth_ref": [
      "r264",
      "r265",
      "r266",
      "r268"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Change in accounting principle. Excludes change from amendment to accounting standards.",
        "label": "Change in Accounting Principle, Type [Domain]"
       }
      }
     },
     "localname": "ChangeInAccountingPrincipleMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [
      "r220",
      "r221",
      "r222",
      "r247",
      "r284",
      "r288",
      "r290",
      "r292",
      "r302",
      "r303",
      "r351",
      "r378",
      "r381",
      "r382",
      "r383",
      "r389",
      "r390",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r552",
      "r660",
      "r705",
      "r715",
      "r732"
     ],
     "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.",
        "label": "Class of Stock [Domain]"
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r28",
      "r184",
      "r197"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and Contingencies",
        "terseLabel": "Commitments and contingencies (see Notes 9 and 14)"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "auth_ref": [
      "r115"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding.",
        "label": "Dividends declared and paid per common share (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockDividendsPerShareCashPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r724",
      "r725",
      "r791"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r9"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r9"
     ],
     "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 (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r9"
     ],
     "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 (in shares)",
        "periodEndLabel": "Ending balance (in shares)",
        "periodStartLabel": "Beginning balance (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r9",
      "r110"
     ],
     "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 (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r9",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 5.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, $0.01 par value, 20,000,000 authorized at December 31, 2022 and 2021; 13,956,725 and 13,917,731 shares issued; 9,911,883 and 9,872,889 shares outstanding, at December 31, 2022 and 2021, respectively"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": {
     "auth_ref": [
      "r122",
      "r123",
      "r124",
      "r147"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.",
        "label": "Retirement savings plan"
       }
      }
     },
     "localname": "CompensationAndEmployeeBenefitPlansTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlan"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement savings plan [Abstract]"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred income tax components [Abstract]"
       }
      }
     },
     "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r36",
      "r230",
      "r232",
      "r238",
      "r621",
      "r626"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "terseLabel": "Comprehensive loss",
        "totalLabel": "Comprehensive loss"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r78",
      "r79",
      "r171",
      "r172",
      "r342",
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r78",
      "r79",
      "r171",
      "r172",
      "r342",
      "r642",
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r78",
      "r79",
      "r171",
      "r172",
      "r342",
      "r644",
      "r812"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r190",
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentration of credit risk"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "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": "Concentration Risk [Line Items]"
       }
      }
     },
     "localname": "ConcentrationRiskLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r78",
      "r79",
      "r171",
      "r172",
      "r342"
     ],
     "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",
        "terseLabel": "Concentration risk percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTable": {
     "auth_ref": [
      "r75",
      "r78",
      "r79",
      "r80",
      "r171",
      "r173",
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.",
        "label": "Concentration Risk [Table]"
       }
      }
     },
     "localname": "ConcentrationRiskTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r78",
      "r79",
      "r171",
      "r172",
      "r342",
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.",
        "label": "Concentration Risk Type [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r166",
      "r666"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
        "label": "Principles of consolidation"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConstructionInProgressMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "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": "Construction in-Process [Member]"
       }
      }
     },
     "localname": "ConstructionInProgressMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "auth_ref": [
      "r751"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "terseLabel": "Net Contract Liabilities"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "auth_ref": [
      "r424",
      "r426",
      "r439"
     ],
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": 2.0,
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "terseLabel": "Unbilled receivables, current"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetNetNoncurrent": {
     "auth_ref": [
      "r424",
      "r426",
      "r439"
     ],
     "calculation": {
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": 1.0,
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as noncurrent.",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Noncurrent",
        "terseLabel": "Unbilled receivables, non-current"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNetNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability [Abstract]",
        "terseLabel": "Contract liabilities [Abstract]"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r424",
      "r425",
      "r439"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      },
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": 4.0,
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.",
        "label": "Deferred revenue",
        "negatedLabel": "Deferred revenue, current"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "auth_ref": [
      "r424",
      "r425",
      "r439"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      },
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails": {
       "order": 5.0,
       "parentTag": "tact_ContractWithCustomerAssetLiabilityNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.",
        "label": "Deferred revenue, net of current portion",
        "negatedLabel": "Deferred revenue, non-current"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionContractBalancesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfRevenue": {
     "auth_ref": [
      "r43",
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r552",
      "r747"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period.",
        "label": "Cost of sales"
       }
      }
     },
     "localname": "CostOfRevenue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r718",
      "r786",
      "r788"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Current Federal Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r718",
      "r786"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 2.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": "Current Foreign Tax Expense (Benefit)",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "CurrentForeignTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r160",
      "r508",
      "r521",
      "r718"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "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)",
        "totalLabel": "Income taxes current"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Current [Abstract]"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r718",
      "r786",
      "r788"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Current State and Local Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r76",
      "r342"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer Concentration Risk [Member]"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r164"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer Relationships [Member]"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Borrowings [Abstract]"
       }
      }
     },
     "localname": "DebtDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r109",
      "r246",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r407",
      "r414",
      "r415",
      "r417"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Debt Disclosure [Text Block]",
        "terseLabel": "Borrowings"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/Borrowings"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r4",
      "r5",
      "r6",
      "r181",
      "r182",
      "r191",
      "r251",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r397",
      "r403",
      "r404",
      "r405",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r580",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r716"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.",
        "label": "Basis spread on variable rate"
       }
      }
     },
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentDecreaseForgiveness": {
     "auth_ref": [
      "r716"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Decrease for amounts of indebtedness forgiven by the holder of the debt instrument.",
        "label": "Debt Instrument, Decrease, Forgiveness",
        "terseLabel": "Loan forgiven"
       }
      }
     },
     "localname": "DebtInstrumentDecreaseForgiveness",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentFaceAmount": {
     "auth_ref": [
      "r176",
      "r178",
      "r391",
      "r580",
      "r675",
      "r676"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face (par) amount of debt instrument at time of issuance.",
        "label": "Debt Instrument, Face Amount",
        "terseLabel": "Face amount"
       }
      }
     },
     "localname": "DebtInstrumentFaceAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentInterestRateStatedPercentage": {
     "auth_ref": [
      "r25",
      "r392"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.",
        "label": "Debt Instrument, Interest Rate, Stated Percentage",
        "terseLabel": "Interest rate"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateStatedPercentage",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentLineItems": {
     "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": "Debt Instrument [Line Items]"
       }
      }
     },
     "localname": "DebtInstrumentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r26",
      "r251",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r397",
      "r403",
      "r404",
      "r405",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r580",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r716"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentTable": {
     "auth_ref": [
      "r26",
      "r111",
      "r112",
      "r113",
      "r114",
      "r175",
      "r176",
      "r178",
      "r189",
      "r251",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r397",
      "r403",
      "r404",
      "r405",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r416",
      "r580",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r716"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.",
        "label": "Schedule of Long-term Debt Instruments [Table]"
       }
      }
     },
     "localname": "DebtInstrumentTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instruments [Abstract]",
        "verboseLabel": "Description of business [Abstract]"
       }
      }
     },
     "localname": "DebtInstrumentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible": {
     "auth_ref": [
      "r152"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease reasonably possible in the next twelve months for the unrecognized tax benefit.",
        "label": "Decrease in Unrecognized Tax Benefits is Reasonably Possible",
        "terseLabel": "Expected decrease in unrecognized tax benefits in next year"
       }
      }
     },
     "localname": "DecreaseInUnrecognizedTaxBenefitsIsReasonablyPossible",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualCompensationExpense": {
     "auth_ref": [
      "r119",
      "r125"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The compensation expense recognized during the period pertaining to the deferred compensation arrangement.",
        "label": "Deferred Compensation Arrangement with Individual, Compensation Expense",
        "terseLabel": "Deferred compensation expense"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualExercisePrice": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The per share price that the individual must pay to acquire shares under the deferred compensation arrangement.",
        "label": "Deferred Compensation Arrangement with Individual, Exercise Price",
        "terseLabel": "Weighted average exercise price of deferred stock units (in dollars per share)"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1": {
     "auth_ref": [
      "r120",
      "r127"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum term of the deferred compensation arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Deferred Compensation Arrangement with Individual, Maximum Contractual Term",
        "terseLabel": "Term of award"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualMaximumContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of deferred compensation related to equity-based payment arrangements. Includes, but is not limited to, employment contracts with one or more selected officers or key employees. Excludes broad group equity-based compensation plans, defined benefit pension plans, defined benefit other postretirement benefit plans and other deferred compensation that is not equivalent to a defined benefit pension plan or a defined benefit other postretirement benefit plan.",
        "label": "Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Axis]"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems": {
     "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": "Deferred Compensation Arrangement with Individual, Share-based Payments [Line Items]"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualSharesIssued": {
     "auth_ref": [
      "r140"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued pursuant to the terms of a deferred compensation arrangement.",
        "label": "Deferred Compensation Arrangement with Individual, Shares Issued",
        "terseLabel": "Deferred stock units issued for incentive bonus (in shares)"
       }
      }
     },
     "localname": "DeferredCompensationArrangementWithIndividualSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_DeferredCompensationArrangementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Compensation Arrangements [Abstract]",
        "verboseLabel": "Restricted stock [Abstract]"
       }
      }
     },
     "localname": "DeferredCompensationArrangementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredCompensationShareBasedPaymentsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred compensation arrangements (such as stock or unit options and share or unit awards) that are equity-based payments with individual employees. The arrangements are generally based on employment contracts between the entity and one or more selected officers or key employees, and contain a promise by the employer to pay certain amounts or benefits at designated future dates, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Other \"sub-members\" can be added as necessary.",
        "label": "Deferred Compensation, Share-Based Payments [Member]",
        "terseLabel": "Restricted Stock [Member]"
       }
      }
     },
     "localname": "DeferredCompensationShareBasedPaymentsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r718",
      "r787",
      "r788"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFinanceCostsGross": {
     "auth_ref": [
      "r177"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.",
        "label": "Debt Issuance Costs, Gross",
        "terseLabel": "Deferred financing costs"
       }
      }
     },
     "localname": "DeferredFinanceCostsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r160",
      "r718",
      "r787"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 2.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": "Foreign"
       }
      }
     },
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r494",
      "r495"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0
      }
     },
     "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, with jurisdictional netting.",
        "label": "Deferred Income Tax Assets, Net",
        "terseLabel": "Deferred tax assets"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r58",
      "r160",
      "r509",
      "r520",
      "r521",
      "r718"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "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 benefit",
        "totalLabel": "Income taxes deferred"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]",
        "terseLabel": "Deferred [Abstract]"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r718",
      "r787",
      "r788"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsDeferredIncome": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 deferred income.",
        "label": "Deferred Tax Assets, Deferred Income",
        "terseLabel": "Deferred revenue"
       }
      }
     },
     "localname": "DeferredTaxAssetsDeferredIncome",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r504"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 0.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 and carryforwards.",
        "label": "Deferred Tax Assets, Gross",
        "totalLabel": "Gross deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 in-process research and development costs expensed in connection with a business combination.",
        "label": "Capitalized R&amp;D expenses"
       }
      }
     },
     "localname": "DeferredTaxAssetsInProcessResearchAndDevelopment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 inventory.",
        "label": "Inventory reserves"
       }
      }
     },
     "localname": "DeferredTaxAssetsInventory",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "auth_ref": [
      "r784"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.",
        "label": "Deferred Tax Assets, Net",
        "totalLabel": "Total net deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r784"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "Deferred Tax Assets, Net of Valuation Allowance",
        "totalLabel": "Net deferred tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Tax Assets, Net [Abstract]",
        "terseLabel": "Deferred tax assets [Abstract]"
       }
      }
     },
     "localname": "DeferredTaxAssetsNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.",
        "label": "Foreign net operating losses"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible state and local operating loss carryforwards.",
        "label": "State net operating losses"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 12.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.",
        "label": "Other liabilities and reserves"
       }
      }
     },
     "localname": "DeferredTaxAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsResearch": {
     "auth_ref": [
      "r156",
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards.",
        "label": "R&amp;D credit carryforward"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsResearch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 employee compensation.",
        "label": "Other accrued compensation"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 share-based compensation.",
        "label": "Stock compensation expense"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 the estimated loss from legal settlements.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Legal Settlements",
        "terseLabel": "Depreciation"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLegalSettlements",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "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 warranty reserves.",
        "label": "Warranty reserve"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r505"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "negatedLabel": "Valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilities": {
     "auth_ref": [
      "r149",
      "r784"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 1.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",
        "totalLabel": "Net deferred tax liabilities"
       }
      }
     },
     "localname": "DeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax liabilities [Abstract]"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.",
        "label": "Deferred Tax Liabilities, Other",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r158",
      "r785"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0
      }
     },
     "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",
        "terseLabel": "Depreciation"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesDeferredTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "auth_ref": [
      "r442"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost for defined contribution plan.",
        "label": "Amount of matching contribution"
       }
      }
     },
     "localname": "DefinedContributionPlanCostRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.",
        "label": "Employee's contribution percentage for match"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage employer matches of the employee's percentage contribution matched.",
        "label": "Employer matching contribution percentage"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/RetirementSavingsPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r58",
      "r99"
     ],
     "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 expense"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r58",
      "r99"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "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, Depletion and Amortization, Nonproduction",
        "verboseLabel": "Depreciation and amortization"
       }
      }
     },
     "localname": "DepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DisaggregationOfRevenueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Disaggregation of revenue [Abstract]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "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": "Disaggregation of Revenue [Line Items]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "auth_ref": [
      "r438",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r752"
     ],
     "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 [Table Text Block]",
        "terseLabel": "Disaggregation of Revenue"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r448",
      "r479",
      "r480",
      "r482",
      "r488",
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Stock incentive plans"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlans"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock incentive plans [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "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": "Federal [Member]"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings per share [Abstract]",
        "terseLabel": "Net (loss) income per common share [Abstract]",
        "verboseLabel": "Net loss per common share:"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r239",
      "r269",
      "r270",
      "r272",
      "r273",
      "r274",
      "r282",
      "r284",
      "r290",
      "r291",
      "r292",
      "r296",
      "r546",
      "r547",
      "r622",
      "r627",
      "r669"
     ],
     "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 (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share, Basic [Abstract]",
        "terseLabel": "Net loss per common share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareBasicAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares used in per-share calculation:",
        "terseLabel": "Shares used in per-share calculation [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareBasicOtherDisclosuresAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r239",
      "r269",
      "r270",
      "r272",
      "r273",
      "r274",
      "r284",
      "r290",
      "r291",
      "r292",
      "r296",
      "r546",
      "r547",
      "r622",
      "r627",
      "r669"
     ],
     "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": "Earnings Per Share, Diluted",
        "terseLabel": "Diluted (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r70",
      "r71"
     ],
     "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 and loss per share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EarningsPerShareReconciliationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share Reconciliation [Abstract]",
        "terseLabel": "Earnings per share [Abstract]"
       }
      }
     },
     "localname": "EarningsPerShareReconciliationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r293",
      "r294",
      "r295",
      "r297"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings per share"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShare"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r568"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Effect of exchange rate changes on cash and cash equivalents"
       }
      }
     },
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r497"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective tax rate",
        "totalLabel": "Effective tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails",
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effective Tax Rate Reconciliation [Abstract]"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r249",
      "r497",
      "r523"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 0.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "verboseLabel": "Federal statutory tax rate"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails",
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 9.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 changes in the valuation allowance for deferred tax assets.",
        "label": "Valuation allowance and tax accruals"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 meals and entertainment expense.",
        "label": "Business meals and entertainment"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 8.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of difference between reported income tax expense (benefit) and 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 share-based payment arrangement.",
        "label": "Stock option cancellations"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 10.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 other adjustments.",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "auth_ref": [
      "r780",
      "r781"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent",
        "terseLabel": "Stock award excess tax benefit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).",
        "label": "State income taxes, net of federal income taxes"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxContingencies": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 income tax contingencies. Includes, but not limited to, domestic tax contingency, foreign tax contingency, state and local tax contingency, and other contingencies.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Contingency, Percent",
        "terseLabel": "Uncertain tax positions"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxContingencies",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsResearch": {
     "auth_ref": [
      "r781",
      "r789"
     ],
     "calculation": {
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage 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 research tax credit.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent",
        "terseLabel": "R&amp;D credit"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsResearch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesStatutoryToEffectiveTaxRateReconciliationDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrent": {
     "auth_ref": [
      "r23"
     ],
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "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. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Salaries and compensation related"
       }
      }
     },
     "localname": "EmployeeRelatedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "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": "Share-based Compensation Arrangement by Share-based Payment Award, Compensation Cost [Line Items]"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r481"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "terseLabel": "Weighted average period to recognize compensation cost not yet recognized"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "auth_ref": [
      "r779"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "terseLabel": "Unrecognized compensation cost related to stock options"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r478"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "terseLabel": "Income tax benefit from share-based compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "auth_ref": [
      "r483"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement.",
        "label": "Excess tax benefit in provision for income taxes"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.",
        "label": "Stock Options [Member]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock repurchase program [Abstract]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred compensation related to equity-based payment arrangements. Includes, but is not limited to, employment contracts with one or more selected officers or key employees. Excludes broad group equity-based compensation plans, defined benefit pension plans, defined benefit other postretirement benefit plans and other deferred compensation that is not equivalent to a defined benefit pension plan or a defined benefit other postretirement benefit plan.",
        "label": "Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Domain]"
       }
      }
     },
     "localname": "EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r110",
      "r205",
      "r234",
      "r235",
      "r236",
      "r258",
      "r259",
      "r260",
      "r265",
      "r275",
      "r278",
      "r301",
      "r355",
      "r423",
      "r484",
      "r485",
      "r486",
      "r513",
      "r514",
      "r545",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r603",
      "r632",
      "r633",
      "r634"
     ],
     "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.",
        "label": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrual": {
     "auth_ref": [
      "r104"
     ],
     "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": "Balance, end of period",
        "periodStartLabel": "Balance, beginning of period"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualCurrent": {
     "auth_ref": [
      "r23"
     ],
     "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 product warranty liability, current"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrualCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualNoncurrent": {
     "auth_ref": [
      "r27"
     ],
     "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 after one year from the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.",
        "label": "Accrued product warranty liability, long-term"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrualNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualPayments": {
     "auth_ref": [
      "r105"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in the extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the extended product warranty. Excludes standard product warranties.",
        "label": "Extended Product Warranty Accrual, Decrease for Payments",
        "negatedLabel": "Warranty settlements"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrualPayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyAccrualWarrantiesIssued": {
     "auth_ref": [
      "r106"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in the extended product warranty accrual from warranties issued. Excludes standard product warranties.",
        "label": "Extended Product Warranty Accrual, Increase for Warranties Issued",
        "terseLabel": "Warranties issued"
       }
      }
     },
     "localname": "ExtendedProductWarrantyAccrualWarrantiesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ExtendedProductWarrantyDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Extended Product Warranty Disclosure [Abstract]",
        "terseLabel": "Warranty [Abstract]"
       }
      }
     },
     "localname": "ExtendedProductWarrantyDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ExtraordinaryAndUnusualItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unusual or Infrequent Items, or Both [Abstract]",
        "verboseLabel": "Description of business [Abstract]"
       }
      }
     },
     "localname": "ExtraordinaryAndUnusualItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FederalFundsEffectiveSwapRateMember": {
     "auth_ref": [
      "r790"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fixed rate on U.S. dollar, constant-notional interest rate swap having its variable-rate leg referenced to Federal Funds effective rate with no additional spread over Federal Funds effective rate on that variable-rate leg.",
        "label": "Fed Funds Effective Rate Overnight Index Swap Rate [Member]",
        "terseLabel": "Federal Funds Rate [Member]"
       }
      }
     },
     "localname": "FederalFundsEffectiveSwapRateMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r217",
      "r369"
     ],
     "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": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "negatedLabel": "Accumulated amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r98"
     ],
     "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": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r98"
     ],
     "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": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r367",
      "r368",
      "r369",
      "r370",
      "r612",
      "r619"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Future amortization expense [Abstract]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r96",
      "r619"
     ],
     "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": "Gross amount"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "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": "Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r92",
      "r95"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Identifiable intangible assets [Abstract]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "auth_ref": [
      "r564",
      "r565",
      "r566",
      "r567"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.",
        "label": "Foreign Currency Transaction Gain (Loss), before Tax",
        "negatedLabel": "Foreign currency transaction losses"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "auth_ref": [
      "r576"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "terseLabel": "Foreign Currency Translation"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GainLossOnSaleOfProperty": {
     "auth_ref": [
      "r58"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of oil and gas property or timber property.",
        "label": "Gain (Loss) on Disposition of Oil and Gas and Timber Property",
        "negatedLabel": "Loss on the disposal of fixed assets"
       }
      }
     },
     "localname": "GainLossOnSaleOfProperty",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GainsLossesOnExtinguishmentOfDebt": {
     "auth_ref": [
      "r58",
      "r107",
      "r108"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 6.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 (Loss) on Extinguishment of Debt",
        "negatedLabel": "Gain on forgiveness of long-term debt",
        "terseLabel": "Gain on forgiveness of long-term debt"
       }
      }
     },
     "localname": "GainsLossesOnExtinguishmentOfDebt",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r44"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "General and administrative"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "auth_ref": [
      "r40"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing general and administrative expense.",
        "label": "General and Administrative Expense [Member]"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpenseMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GeographicConcentrationRiskMember": {
     "auth_ref": [
      "r77",
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa).",
        "label": "Geographic Concentration Risk [Member]"
       }
      }
     },
     "localname": "GeographicConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r216",
      "r366",
      "r620",
      "r673",
      "r692",
      "r742",
      "r743"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetImpairment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total loss recognized during the period from the impairment of goodwill plus the loss recognized in the period resulting from the impairment of the carrying amount of intangible assets, other than goodwill.",
        "label": "Goodwill and Intangible Asset Impairment",
        "terseLabel": "Impairment of goodwill and intangible assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetImpairment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesGoodwillAndIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible assets, net [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "auth_ref": [
      "r89",
      "r93"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.",
        "label": "Goodwill and intangible assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r42",
      "r247",
      "r318",
      "r327",
      "r333",
      "r336",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r552",
      "r671",
      "r747"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.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",
        "terseLabel": "Gross profit",
        "totalLabel": "Gross profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r38",
      "r179",
      "r185",
      "r199",
      "r318",
      "r327",
      "r333",
      "r336",
      "r623",
      "r671"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.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": "Loss before income taxes",
        "totalLabel": "Loss before income taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r248",
      "r522"
     ],
     "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": "Foreign income (loss) before taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF OPERATIONS [Abstract]",
        "terseLabel": "Consolidated Statements of Operations [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r372",
      "r373"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r373"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r153"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "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.",
        "label": "Income Tax Authority [Domain]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income taxes [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r249",
      "r498",
      "r502",
      "r507",
      "r518",
      "r524",
      "r526",
      "r527",
      "r528"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExaminationPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r782"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of estimated penalties and interest accrued as of the balance sheet date arising from income tax examinations.",
        "label": "Accrued interest and penalties related to uncertain tax positions"
       }
      }
     },
     "localname": "IncomeTaxExaminationPenaltiesAndInterestAccrued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r250",
      "r277",
      "r278",
      "r317",
      "r496",
      "r519",
      "r525",
      "r628"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      },
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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": "Income Tax Expense (Benefit)",
        "negatedLabel": "Income tax benefit",
        "totalLabel": "Income tax benefit"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Components of income tax benefit [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]",
        "terseLabel": "Income taxes [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r233",
      "r492",
      "r493",
      "r502",
      "r503",
      "r506",
      "r510"
     ],
     "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 Tax, Policy [Policy Text Block]",
        "terseLabel": "Income taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxesPaid": {
     "auth_ref": [
      "r55",
      "r62"
     ],
     "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.",
        "label": "Income taxes paid"
       }
      }
     },
     "localname": "IncomeTaxesPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 15.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",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": {
     "auth_ref": [
      "r714"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 20.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other.",
        "label": "Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities",
        "terseLabel": "Accrued liabilities and other liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "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": "Increase (Decrease) in Inventories",
        "negatedLabel": "Inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in operating assets and liabilities:"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": {
     "auth_ref": [
      "r714",
      "r797"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation for operating lease.",
        "label": "Increase (Decrease) in Operating Lease Liability",
        "terseLabel": "Increase (decrease) in operating lease liability"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingAssets": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 14.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",
        "negatedLabel": "Other current and long-term assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherOperatingAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidTaxes": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods.",
        "label": "Increase (Decrease) in Prepaid Taxes",
        "negatedLabel": "Prepaid income taxes"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInReceivables": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "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 the total amount due within one year (or one operating cycle) from all parties, associated with underlying transactions that are classified as operating activities.",
        "label": "Increase (Decrease) in Receivables",
        "negatedLabel": "Accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInReceivables",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]"
       }
      }
     },
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "auth_ref": [
      "r285",
      "r286",
      "r287",
      "r292",
      "r447"
     ],
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "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": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "terseLabel": "Add: Dilutive effect of outstanding equity awards as determined by the treasury stock method (in shares)"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r371"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all or part of the information related to intangible assets.",
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible assets, net"
       }
      }
     },
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNet"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r90",
      "r94"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 7.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "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 (Excluding Goodwill)",
        "terseLabel": "Intangible assets, net"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r177",
      "r188",
      "r237",
      "r316",
      "r579"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 5.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "Interest Expense",
        "negatedLabel": "Interest expense"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestIncomeDomesticDeposits": {
     "auth_ref": [
      "r187"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest earned on deposits in United States money market accounts and other United States interest earning accounts.",
        "label": "Interest income"
       }
      }
     },
     "localname": "InterestIncomeDomesticDeposits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r242",
      "r244",
      "r245"
     ],
     "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": "Interest paid"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories [Abstract]"
       }
      }
     },
     "localname": "InventoryDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r365"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.",
        "label": "Inventory Disclosure [Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/Inventories"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "auth_ref": [
      "r88",
      "r664"
     ],
     "calculation": {
      "http://transact-tech.com/role/InventoriesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.",
        "label": "Finished goods"
       }
      }
     },
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r226",
      "r662",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://transact-tech.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",
        "totalLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r212",
      "r225",
      "r298",
      "r363",
      "r364",
      "r365",
      "r610",
      "r667"
     ],
     "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": "Inventory, Policy [Policy Text Block]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves": {
     "auth_ref": [
      "r88",
      "r710"
     ],
     "calculation": {
      "http://transact-tech.com/role/InventoriesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregated amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed. This amount is net of valuation reserves and adjustments.",
        "label": "Raw materials and purchased component parts"
       }
      }
     },
     "localname": "InventoryRawMaterialsAndSuppliesNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "auth_ref": [
      "r88",
      "r665"
     ],
     "calculation": {
      "http://transact-tech.com/role/InventoriesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.",
        "label": "Work-in-process"
       }
      }
     },
     "localname": "InventoryWorkInProcessNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/InventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "auth_ref": [
      "r100"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements [Member]"
       }
      }
     },
     "localname": "LeaseholdImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionLineItems": {
     "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": "Lessee, Lease, Description [Line Items]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeaseDescriptionTable": {
     "auth_ref": [
      "r591"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about lessee's leases.",
        "label": "Lessee, Lease, Description [Table]"
       }
      }
     },
     "localname": "LesseeLeaseDescriptionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "auth_ref": [
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.",
        "label": "Leases"
       }
      }
     },
     "localname": "LesseeLeasesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseDescriptionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Description [Abstract]",
        "terseLabel": "Operating Lease Weighted Average Remaining Lease Term and Discount Rate [Abstract]"
       }
      }
     },
     "localname": "LesseeOperatingLeaseDescriptionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r798"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Maturity of Operating Lease Liabilities"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "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": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total undiscounted lease payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "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 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",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "order": 0.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",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "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 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",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "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 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",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "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 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",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetails": {
       "order": 1.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",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r595"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "order": 0.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "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 imputed interest"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseRemainingLeaseTerm": {
     "auth_ref": [
      "r795"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Remaining lease term of operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Remaining Lease Term",
        "terseLabel": "Remaining lease terms"
       }
      }
     },
     "localname": "LesseeOperatingLeaseRemainingLeaseTerm",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeaseRenewalTerm": {
     "auth_ref": [
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Lessee, Operating Lease, Renewal Term",
        "terseLabel": "Extension period for leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseRenewalTerm",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r596"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/Leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r22",
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r533",
      "r534",
      "r535",
      "r552",
      "r670",
      "r747",
      "r801",
      "r802"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r14",
      "r183",
      "r195",
      "r692",
      "r717",
      "r737",
      "r793"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and shareholders' equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Shareholders' Equity:"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r24",
      "r211",
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r533",
      "r534",
      "r535",
      "r552",
      "r692",
      "r747",
      "r801",
      "r802"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "auth_ref": [
      "r1",
      "r2",
      "r3",
      "r6",
      "r7",
      "r247",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r533",
      "r534",
      "r535",
      "r552",
      "r747",
      "r801",
      "r802"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.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 noncurrent liabilities"
       }
      }
     },
     "localname": "LiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility [Abstract]",
        "verboseLabel": "Borrowings [Abstract]"
       }
      }
     },
     "localname": "LineOfCreditFacilityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r20"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "Maximum borrowing capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "auth_ref": [
      "r20"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).",
        "label": "Line of Credit Facility, Remaining Borrowing Capacity",
        "terseLabel": "Additional borrowing capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.",
        "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage",
        "terseLabel": "Percentage fee on unused borrowings"
       }
      }
     },
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LinesOfCreditCurrent": {
     "auth_ref": [
      "r4",
      "r181"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.",
        "label": "Current portion of revolving loan payable"
       }
      }
     },
     "localname": "LinesOfCreditCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LitigationSettlementExpense": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of litigation expense, including but not limited to legal, forensic, accounting, and investigative fees.",
        "label": "Litigation Settlement, Expense",
        "verboseLabel": "Legal fees and settlement expenses associated with lawsuit (Note 10)"
       }
      }
     },
     "localname": "LitigationSettlementExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.",
        "label": "Machinery and Equipment [Member]",
        "terseLabel": "Tooling, Machinery and Equipment [Member]"
       }
      }
     },
     "localname": "MachineryAndEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MarketingAndAdvertisingExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising [Abstract]"
       }
      }
     },
     "localname": "MarketingAndAdvertisingExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAdvertisingDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MovementInExtendedProductWarrantyAccrualRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Accrued product warranty liability [Roll Forward]"
       }
      }
     },
     "localname": "MovementInExtendedProductWarrantyAccrualRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MovementInValuationAllowancesAndReservesRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Valuation allowance [Roll Forward]"
       }
      }
     },
     "localname": "MovementInValuationAllowancesAndReservesRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NatureOfOperations": {
     "auth_ref": [
      "r304",
      "r310"
     ],
     "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": "Description of business"
       }
      }
     },
     "localname": "NatureOfOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusiness"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r243"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "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 provided by financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r243"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "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) provided by investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r54",
      "r56",
      "r59"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "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 used in operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from operating activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r39",
      "r59",
      "r186",
      "r198",
      "r209",
      "r229",
      "r231",
      "r236",
      "r247",
      "r264",
      "r269",
      "r270",
      "r272",
      "r273",
      "r277",
      "r278",
      "r289",
      "r318",
      "r327",
      "r333",
      "r336",
      "r351",
      "r378",
      "r379",
      "r381",
      "r382",
      "r383",
      "r385",
      "r387",
      "r389",
      "r390",
      "r547",
      "r552",
      "r671",
      "r747"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "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 loss",
        "terseLabel": "Net loss",
        "totalLabel": "Net loss",
        "verboseLabel": "Net (loss) income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r208",
      "r262",
      "r263",
      "r266",
      "r267",
      "r279",
      "r280",
      "r281",
      "r349",
      "r350",
      "r356",
      "r357",
      "r515",
      "r516",
      "r517",
      "r543",
      "r549",
      "r550",
      "r551",
      "r559",
      "r560",
      "r561",
      "r585",
      "r586",
      "r598",
      "r604",
      "r616",
      "r617",
      "r618",
      "r636",
      "r637",
      "r638",
      "r639",
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "terseLabel": "Change in accounting principle"
       }
      }
     },
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrinciple"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems": {
     "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": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable": {
     "auth_ref": [
      "r68",
      "r203",
      "r204",
      "r205",
      "r206",
      "r207",
      "r261",
      "r264",
      "r265",
      "r266",
      "r268",
      "r272",
      "r279",
      "r296",
      "r347",
      "r348",
      "r352",
      "r353",
      "r354",
      "r355",
      "r358",
      "r359",
      "r484",
      "r485",
      "r486",
      "r511",
      "r512",
      "r513",
      "r514",
      "r529",
      "r530",
      "r531",
      "r536",
      "r537",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r558",
      "r562",
      "r563",
      "r577",
      "r578",
      "r581",
      "r582",
      "r583",
      "r584",
      "r597",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r613",
      "r614",
      "r615",
      "r630",
      "r631",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r640",
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Summarization of the changes in an accounting principle or a new accounting pronouncement, including the line items affected by the change and the financial effects of the change on those particular line items.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Table]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails",
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.",
        "label": "Covenant Not to Compete [Member]"
       }
      }
     },
     "localname": "NoncompeteAgreementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.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": "Interest and other income (expense)"
       }
      }
     },
     "localname": "NonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest and other income (expense):"
       }
      }
     },
     "localname": "NonoperatingIncomeExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NontradeReceivablesCurrent": {
     "auth_ref": [
      "r709"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.",
        "label": "Nontrade Receivables, Current",
        "terseLabel": "Employee retention credit receivable"
       }
      }
     },
     "localname": "NontradeReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NumberOfOperatingSegments": {
     "auth_ref": [
      "r736"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.",
        "label": "Number of operating segments",
        "terseLabel": "Number of business segments"
       }
      }
     },
     "localname": "NumberOfOperatingSegments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.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": "Operating expenses"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating expenses:"
       }
      }
     },
     "localname": "OperatingExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r318",
      "r327",
      "r333",
      "r336",
      "r671"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.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)",
        "terseLabel": "Operating loss",
        "totalLabel": "Operating loss"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r794"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease expense. Excludes sublease income.",
        "label": "Operating Lease, Expense",
        "terseLabel": "Operating lease expense"
       }
      }
     },
     "localname": "OperatingLeaseExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid [Abstract]",
        "terseLabel": "Maturity of Operating Lease Liabilities [Abstract]"
       }
      }
     },
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r588"
     ],
     "calculation": {
      "http://transact-tech.com/role/LeasesDetailsCalc2": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Operating Lease, Liability",
        "terseLabel": "Total lease liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r588"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Lease liability"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r588"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Lease liability, net of current portion"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r589",
      "r592"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating Lease, Payments",
        "terseLabel": "Operating cash outflows from leases"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r587"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "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",
        "terseLabel": "Right-of-use asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r594",
      "r691"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Weighted average discount rate"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r593",
      "r691"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Weighted average remaining lease term"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/LeasesDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLossCarryforwardsLineItems": {
     "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": "Operating Loss Carryforwards [Line Items]"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLossCarryforwardsTable": {
     "auth_ref": [
      "r157"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting pertinent information, such as tax authority, amounts, and expiration dates, of net operating loss carryforwards, including an assessment of the likelihood of utilization.",
        "label": "Operating Loss Carryforwards [Table]"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherAssetsCurrent": {
     "auth_ref": [
      "r227",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 8.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current assets classified as other.",
        "label": "Other current assets"
       }
      }
     },
     "localname": "OtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r218"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "auth_ref": [
      "r31"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss": {
       "order": 2.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.",
        "label": "Foreign currency translation adjustment, net of tax",
        "terseLabel": "Foreign currency translation adjustment, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/ConsolidatedStatementsOfComprehensiveLoss"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intangible assets classified as other.",
        "label": "Other [Member]"
       }
      }
     },
     "localname": "OtherIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "auth_ref": [
      "r23",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other"
       }
      }
     },
     "localname": "OtherLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherLiabilitiesMember": {
     "auth_ref": [
      "r168",
      "r170"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing other liabilities.",
        "label": "Other Liabilities [Member]"
       }
      }
     },
     "localname": "OtherLiabilitiesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r27"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.",
        "label": "Other liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r46"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 3.0,
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.",
        "label": "Other, net"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PatentsMember": {
     "auth_ref": [
      "r165"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law.",
        "label": "Patents [Member]"
       }
      }
     },
     "localname": "PatentsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued liabilities [Abstract]"
       }
      }
     },
     "localname": "PayablesAndAccrualsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PaymentsOfLoanCosts": {
     "auth_ref": [
      "r53"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for loan origination associated cost which is usually collected through escrow.",
        "label": "Payments of Loan Costs",
        "negatedTerseLabel": "Payment of bank financing costs"
       }
      }
     },
     "localname": "PaymentsOfLoanCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfStockIssuanceCosts": {
     "auth_ref": [
      "r53"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security.",
        "label": "Payments of Stock Issuance Costs",
        "negatedLabel": "Payment of common stock issuance costs"
       }
      }
     },
     "localname": "PaymentsOfStockIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [
      "r241"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "negatedLabel": "Withholding taxes paid on stock issuance"
       }
      }
     },
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r49"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 3.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 assets.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Capital expenditures"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement.",
        "label": "Plan Name [Domain]"
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r8",
      "r418"
     ],
     "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": "Preferred stock par value (in dollars per share)"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r8"
     ],
     "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": "Preferred stock, shares authorized (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r8",
      "r418"
     ],
     "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": "Preferred stock, shares issued (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r8"
     ],
     "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": "Preferred stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r8",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Preferred Stock, Value, Issued",
        "terseLabel": "Preferred stock"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidTaxes": {
     "auth_ref": [
      "r663",
      "r672",
      "r741"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 6.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 income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.",
        "label": "Prepaid income taxes"
       }
      }
     },
     "localname": "PrepaidTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrimeRateMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers.",
        "label": "Prime Rate [Member]"
       }
      }
     },
     "localname": "PrimeRateMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "auth_ref": [
      "r706"
     ],
     "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, Comparability Adjustment [Policy Text Block]",
        "terseLabel": "Change in accounting principle and Reclassificiations"
       }
      }
     },
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "auth_ref": [
      "r50"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the additional capital contribution to the entity.",
        "label": "Proceeds from the issuance of common stock",
        "terseLabel": "Proceeds from Public Offering"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfOtherLongTermDebt": {
     "auth_ref": [
      "r51"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from issuance of long-term debt classified as other.",
        "label": "Long-term debt borrowings"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfOtherLongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "auth_ref": [
      "r51",
      "r716"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Proceeds from Lines of Credit",
        "terseLabel": "Proceeds from bank borrowings"
       }
      }
     },
     "localname": "ProceedsFromLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.",
        "label": "Proceeds from the sale of fixed assets"
       }
      }
     },
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r50",
      "r143"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.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 stock option exercises",
        "terseLabel": "Cash received from exercise of stock options"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyLiabilityLineItems": {
     "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": "Product Warranty Liability [Line Items]"
       }
      }
     },
     "localname": "ProductWarrantyLiabilityLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ProductWarrantyLiabilityTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about product warranty liability, including, but not limited to, reductions in the liability for payments made under the warranty, changes in the liability for accruals related to product warranties issued, and changes in the liability for accruals related to preexisting warranties.",
        "label": "Product Warranty Liability [Table]"
       }
      }
     },
     "localname": "ProductWarrantyLiabilityTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesWarrantyDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fixed assets, net [Abstract]",
        "terseLabel": "Fixed assets [Abstract]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r102"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Long-Lived Tangible Asset [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r103",
      "r645",
      "r646",
      "r647"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Fixed assets, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNet"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r100",
      "r214"
     ],
     "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, Plant and Equipment, Gross",
        "terseLabel": "Fixed assets"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "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": "Property, Plant and Equipment [Line Items]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r102",
      "r196",
      "r624",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsNoncurrent",
       "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, Plant and Equipment, Net",
        "terseLabel": "Fixed assets, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment, Net, by Type [Abstract]",
        "terseLabel": "Fixed assets [Abstract]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNetByTypeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r102",
      "r645",
      "r646"
     ],
     "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, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Fixed assets"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r102"
     ],
     "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": "Fixed Assets, Net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r100"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Long-Lived Tangible Asset [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Estimated useful life"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r240",
      "r361"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Additions charged to costs and expenses"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesAllowanceForDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_QuarterlyFinancialInformationDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Quarterly results of operations (unaudited) [Abstract]"
       }
      }
     },
     "localname": "QuarterlyFinancialInformationDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_QuarterlyFinancialInformationTextBlock": {
     "auth_ref": [
      "r74",
      "r300"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.",
        "label": "Quarterly results of operations (unaudited)"
       }
      }
     },
     "localname": "QuarterlyFinancialInformationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnaudited"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy": {
     "auth_ref": [
      "r86"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining the allowance for doubtful accounts for trade and other accounts receivable balances, and when impairments, charge-offs or recoveries are recognized.",
        "label": "Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]",
        "terseLabel": "Allowance for doubtful accounts"
       }
      }
     },
     "localname": "ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Unrecognized tax benefits [Roll Forward]"
       }
      }
     },
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RepaymentsOfLinesOfCredit": {
     "auth_ref": [
      "r52",
      "r716"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Repayments of Lines of Credit",
        "negatedLabel": "Revolving credit line payments"
       }
      }
     },
     "localname": "RepaymentsOfLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r148",
      "r201",
      "r809"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.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": "Engineering, design and product development",
        "terseLabel": "Research and development expense"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpenseAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and Development Expense [Abstract]",
        "terseLabel": "Engineering, design and product development [Abstract]"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpenseAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesEngineeringDesignAndProductDevelopmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "auth_ref": [
      "r148"
     ],
     "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 Expense, Policy [Policy Text Block]",
        "terseLabel": "Engineering, design and product development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ResearchMember": {
     "auth_ref": [
      "r157"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Research tax credit carryforwards arising from certain qualifying expenditures incurred to develop new products and processes.",
        "label": "R&amp;D Credit [Member]"
       }
      }
     },
     "localname": "ResearchMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.",
        "label": "Restricted Share Units [Member]"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r11",
      "r115",
      "r194",
      "r636",
      "r641",
      "r692"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 6.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": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r205",
      "r258",
      "r259",
      "r260",
      "r265",
      "r275",
      "r278",
      "r355",
      "r484",
      "r485",
      "r486",
      "r513",
      "r514",
      "r545",
      "r632",
      "r634"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r314",
      "r315",
      "r326",
      "r331",
      "r332",
      "r338",
      "r339",
      "r342",
      "r437",
      "r438",
      "r611"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.",
        "label": "Net sales"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionDisaggregationOfRevenueDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "auth_ref": [
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r440",
      "r668"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue from contract with customer.",
        "label": "Revenue recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenuePerformanceObligationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Performance Obligation [Abstract]",
        "terseLabel": "Remaining performance obligations [Abstract]"
       }
      }
     },
     "localname": "RevenuePerformanceObligationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "auth_ref": [
      "r427"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "terseLabel": "Remaining performance obligations"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "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": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r428"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "terseLabel": "Expected timing of satisfaction, period"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r428"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesRevenueRecognitionRemainingPerformanceObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "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": "Revenues from External Customers and Long-Lived Assets [Line Items]"
       }
      }
     },
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RisksAndUncertaintiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Risks and Uncertainties [Abstract]",
        "terseLabel": "Concentration of credit risk [Abstract]"
       }
      }
     },
     "localname": "RisksAndUncertaintiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [
      "r342",
      "r735"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.",
        "label": "Sales [Member]"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesConcentrationOfCreditRiskDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Accrued Liabilities"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "auth_ref": [
      "r70"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities.",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]"
       }
      }
     },
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r159"
     ],
     "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": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Components of Income Tax Benefit"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock": {
     "auth_ref": [
      "r85",
      "r740"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss of financing receivable, classified as current.",
        "label": "Financing Receivable, Current, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Allowance for Doubtful Accounts"
       }
      }
     },
     "localname": "ScheduleOfCreditLossesForFinancingReceivablesCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable": {
     "auth_ref": [
      "r119",
      "r121",
      "r126",
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule, table or text reflecting equity-based arrangements (such as stock or unit options and stock or unit awards) with individual employees, which are generally based on employment contracts between the entity and one or more selected officers or key employees, and which contain a promise by the employer to pay certain equity-based awards at future dates, sometimes including a period after retirement, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Disclosure also typically includes the amount of related compensation expense recognized during the reporting period, the number of shares or units issued during the period under such arrangements, and the carrying amount as of the balance sheet date of the related liability.",
        "label": "Schedule of Deferred Compensation Arrangement with Individual, Share-based Payments [Table]"
       }
      }
     },
     "localname": "ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansRestrictedStockDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r155"
     ],
     "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 Tax Assets and Liabilities"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r733"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Earnings per Share"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r150"
     ],
     "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": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Statutory to Effective Tax Rate Reconciliation"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "auth_ref": [
      "r139",
      "r144"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements.",
        "label": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r92",
      "r95",
      "r612"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r92",
      "r95"
     ],
     "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": "Identifiable Intangible Assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r0",
      "r15",
      "r16",
      "r17"
     ],
     "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]",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/InventoriesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r68",
      "r69",
      "r72",
      "r73"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Table Text Block]",
        "terseLabel": "Financial Statement Line Items Impacted by Change in Accounting Principle"
       }
      }
     },
     "localname": "ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r102"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about 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]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/FixedAssetsNetDetails",
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock": {
     "auth_ref": [
      "r299"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.",
        "label": "Quarterly Financial Information [Table Text Block]",
        "terseLabel": "Quarterly Results of Operations"
       }
      }
     },
     "localname": "ScheduleOfQuarterlyFinancialInformationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/QuarterlyResultsOfOperationsUnauditedTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "auth_ref": [
      "r41",
      "r84"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Net Sales and Fixed Assets by Geographic Area"
       }
      }
     },
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "auth_ref": [
      "r37",
      "r84"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r444",
      "r446",
      "r449",
      "r450",
      "r451",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r128",
      "r135",
      "r136"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Stock Option Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r138"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.",
        "label": "Assumptions Used in Option Valuation Calculations"
       }
      }
     },
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SchedulesOfConcentrationOfRiskByRiskFactorTextBlock": {
     "auth_ref": [
      "r75",
      "r78",
      "r79",
      "r80",
      "r171",
      "r173"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark.",
        "label": "Schedules of Concentration of Risk, by Risk Factor [Table Text Block]",
        "terseLabel": "Concentration of Credit Risk"
       }
      }
     },
     "localname": "SchedulesOfConcentrationOfRiskByRiskFactorTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SecuredDebt": {
     "auth_ref": [
      "r6",
      "r182",
      "r193"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower.",
        "label": "Secured Debt",
        "terseLabel": "Balance outstanding"
       }
      }
     },
     "localname": "SecuredDebt",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic area information [Abstract]",
        "terseLabel": "Segment reporting [Abstract]"
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesSegmentReportingDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r311",
      "r312",
      "r313",
      "r318",
      "r319",
      "r330",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r341",
      "r342",
      "r343"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.",
        "label": "Geographic area information"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "auth_ref": [
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r339"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for segment reporting.",
        "label": "Segment reporting"
       }
      }
     },
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentsGeographicalAreasAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segments, Geographical Areas [Abstract]",
        "terseLabel": "Geographical area information [Abstract]"
       }
      }
     },
     "localname": "SegmentsGeographicalAreasAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/GeographicAreaInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SellingAndMarketingExpense": {
     "auth_ref": [],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services.",
        "label": "Selling and marketing"
       }
      }
     },
     "localname": "SellingAndMarketingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "auth_ref": [
      "r707",
      "r708",
      "r750"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Series A preferred stock.",
        "label": "Series A Preferred Stock [Member]"
       }
      }
     },
     "localname": "SeriesAPreferredStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedArrangementsToObtainGoodsAndServicesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Disclosure [Abstract]",
        "terseLabel": "Stock incentive plans [Abstract]"
       }
      }
     },
     "localname": "ShareBasedArrangementsToObtainGoodsAndServicesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share-based compensation expense"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-based compensation [Abstract]"
       }
      }
     },
     "localname": "ShareBasedCompensationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansSharebasedCompensationExpenseDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.",
        "label": "Vesting period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r466"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r464"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Granted (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r461",
      "r462"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Outstanding, end of period (in dollars per share)",
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]",
        "terseLabel": "Weighted Average Grant Stock Price [Abstract]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms": {
     "auth_ref": [
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for equity-based awards excluding options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Outstanding, Weighted Average Remaining Contractual Terms",
        "terseLabel": "Restricted stock units vested and expected to vest"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingWeightedAverageRemainingContractualTerms",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assumptions used in valuation model [Abstract]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "auth_ref": [
      "r475"
     ],
     "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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "terseLabel": "Dividend yield"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r474"
     ],
     "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": "Expected volatility"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r476"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.",
        "label": "Risk-free interest rate"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "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": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised": {
     "auth_ref": [
      "r132"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of non-option equity instruments exercised by participants.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised",
        "negatedLabel": "Exercised (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations": {
     "auth_ref": [
      "r134"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares under non-option equity instrument agreements for which rights to exercise lapsed.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations",
        "terseLabel": "Expired (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures": {
     "auth_ref": [
      "r133"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares under non-option equity instrument agreements that were cancelled as a result of occurrence of a terminating event.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Forfeitures",
        "negatedLabel": "Forfeited (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted": {
     "auth_ref": [
      "r131"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net number of non-option equity instruments granted to participants.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Granted",
        "terseLabel": "Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsGranted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "auth_ref": [
      "r129",
      "r130"
     ],
     "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",
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "periodStartLabel": "Outstanding, beginning of period (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding [Roll Forward]",
        "terseLabel": "Number of Units [Roll Forward]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "auth_ref": [
      "r690"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement.",
        "label": "Number of shares authorized (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.",
        "label": "Number of shares available for grant (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r455"
     ],
     "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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "terseLabel": "Options exercisable, end of period (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r455"
     ],
     "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": "Options exercisable, end of period (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r468"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "terseLabel": "Intrinsic value of stock options exercised"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": {
     "auth_ref": [
      "r460"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period",
        "negatedLabel": "Expired (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period",
        "negatedLabel": "Forfeited (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "auth_ref": [
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Gross number of share options (or share units) granted during the period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "terseLabel": "Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r453",
      "r454"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "periodEndLabel": "Outstanding, end of period (in shares)",
        "periodStartLabel": "Outstanding, beginning of period (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Number of Shares [Roll Forward]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r453",
      "r454"
     ],
     "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": "Outstanding, end of period (in dollars per share)",
        "periodStartLabel": "Outstanding, beginning of period (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Options vested or expected to vest (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "auth_ref": [
      "r469"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. 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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "terseLabel": "Options vested and expected to vest"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "auth_ref": [
      "r136"
     ],
     "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": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding and Exercisable [Table Text Block]",
        "terseLabel": "Equity Awards Vested and Expected to Vest"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "auth_ref": [
      "r469"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "terseLabel": "Options vested or expected to vest (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r449",
      "r450",
      "r451",
      "r453",
      "r454",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Equity Award [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r458"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.",
        "label": "Exercised (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r460"
     ],
     "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",
        "terseLabel": "Expired (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r459"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.",
        "label": "Forfeited (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.",
        "label": "Granted (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r452",
      "r471",
      "r472",
      "r473",
      "r474",
      "r477",
      "r487",
      "r488"
     ],
     "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 payments"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intrinsic value of vested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Aggregate Intrinsic Value, Vested",
        "terseLabel": "Restricted stock units vested and expected to vest"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueVested",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "auth_ref": [
      "r689"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Term of award"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails",
      "http://transact-tech.com/role/StockIncentivePlansStockIncentivePlansDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r473"
     ],
     "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 option term"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "auth_ref": [
      "r142"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.",
        "label": "Options exercisable, end of period"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r142"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "terseLabel": "Options exercisable, end of period"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average grant-date fair value of non-vested options outstanding.",
        "label": "Weighted average fair value of grants (in dollars per share)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansAssumptionsUsedInOptionValuationCalculationsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r469"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.",
        "label": "Options vested and expected to vest"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1": {
     "auth_ref": [
      "r468"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of options vested. Excludes equity instruments other than options, for example, but not limited to, share units, stock appreciation rights, restricted stock.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested in Period, Fair Value",
        "terseLabel": "Fair value of all awards vested"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation",
        "negatedLabel": "Relinquishments of stock options and deferred stock units to pay withholding taxes (in shares)"
       }
      }
     },
     "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity.",
        "label": "State and Local Jurisdiction [Member]",
        "terseLabel": "State [Member]"
       }
      }
     },
     "localname": "StateAndLocalJurisdictionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r220",
      "r221",
      "r222",
      "r247",
      "r284",
      "r288",
      "r290",
      "r292",
      "r302",
      "r303",
      "r351",
      "r378",
      "r381",
      "r382",
      "r383",
      "r389",
      "r390",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r552",
      "r660",
      "r705",
      "r715",
      "r732"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Class of Stock [Axis]"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r30",
      "r110",
      "r205",
      "r234",
      "r235",
      "r236",
      "r258",
      "r259",
      "r260",
      "r265",
      "r275",
      "r278",
      "r301",
      "r355",
      "r423",
      "r484",
      "r485",
      "r486",
      "r513",
      "r514",
      "r545",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r603",
      "r632",
      "r633",
      "r634"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CASH FLOWS [Abstract]",
        "terseLabel": "Consolidated Statements of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfCashFlowsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED BALANCE SHEETS [Abstract]",
        "terseLabel": "Consolidated Balance Sheets [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnBalanceSheetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS [Abstract]",
        "terseLabel": "Consolidated Statements of Comprehensive Loss [Abstract]"
       }
      }
     },
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CONSOLIDATED STATEMENTS OF CHANGES IN SHAREHOLDERS' EQUITY [Abstract]",
        "terseLabel": "Consolidated Statements of Changes in Shareholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r258",
      "r259",
      "r260",
      "r301",
      "r611"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockCompensationPlanMember": {
     "auth_ref": [
      "r734"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares.",
        "label": "Stock Awards [Member]"
       }
      }
     },
     "localname": "StockCompensationPlanMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StockGrantedDuringPeriodValueSharebasedCompensationForfeited": {
     "auth_ref": [
      "r141"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of forfeited shares granted under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).",
        "label": "Shares Granted, Value, Share-Based Payment Arrangement, Forfeited",
        "negatedLabel": "Relinquishments of stock options and deferred stock units to pay withholding taxes"
       }
      }
     },
     "localname": "StockGrantedDuringPeriodValueSharebasedCompensationForfeited",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of new stock issued during the period.",
        "label": "Issuance of common stock, net of issuance cost (in shares)",
        "terseLabel": "Shares sold in Public Offering (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued during the period related to Restricted Stock Awards, net of any shares forfeited.",
        "label": "Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures",
        "verboseLabel": "Issuance of common stock on restricted stock units (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115",
      "r458"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Issuance of shares from exercise of stock options (in shares)",
        "negatedLabel": "Exercised (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity",
      "http://transact-tech.com/role/StockIncentivePlansStockOptionsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115"
     ],
     "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": "Issuance of common stock, net of issuance cost"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures": {
     "auth_ref": [
      "r110",
      "r115"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited.",
        "label": "Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures",
        "verboseLabel": "Issuance of common stock on restricted stock units"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r30",
      "r110",
      "r115"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "terseLabel": "Issuance of shares from exercise of stock options"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115"
     ],
     "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": "Common stock repurchased (in shares)"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "auth_ref": [
      "r8",
      "r9",
      "r110",
      "r115"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.",
        "label": "Value of common stock repurchased"
       }
      }
     },
     "localname": "StockRepurchasedDuringPeriodValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r9",
      "r12",
      "r13",
      "r87",
      "r692",
      "r717",
      "r737",
      "r793"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 2.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": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "totalLabel": "Total shareholders' equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfChangesInShareholdersEquityDetails",
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shareholders' equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets",
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.",
        "label": "Subsequent Event [Line Items]"
       }
      }
     },
     "localname": "SubsequentEventLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r575",
      "r606"
     ],
     "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 [Member]"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTable": {
     "auth_ref": [
      "r575",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discloses pertinent information about one or more 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.",
        "label": "Subsequent Event [Table]"
       }
      }
     },
     "localname": "SubsequentEventTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r575",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Axis]"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r575",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Domain]"
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r605",
      "r607"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
        "label": "Subsequent Events [Text Block]",
        "terseLabel": "Subsequent events"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock": {
     "auth_ref": [
      "r151"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of unrecognized tax benefits for which a material change is reasonably possible in the next twelve months, typically including the nature of the uncertainty, the event(s) that could cause a material change, and an estimate of the range of the reasonably possible change or a statement that an estimate of the range cannot be made. An unrecognized tax benefit is the difference between a tax position taken in a tax return and the amounts recognized in the financial statements for which it is more likely than not, based on the technical merits of the position, that the tax position will not be sustained upon examination.",
        "label": "Summary of Positions for which Significant Change in Unrecognized Tax Benefits is Reasonably Possible [Table Text Block]",
        "terseLabel": "Unrecognized Tax Benefits"
       }
      }
     },
     "localname": "SummaryOfPositionsForWhichSignificantChangeInUnrecognizedTaxBenefitsIsReasonablyPossibleTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SummaryOfValuationAllowanceTextBlock": {
     "auth_ref": [
      "r154"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of valuation allowances to reduce deferred tax assets to net realizable value, including identification of the deferred tax asset more likely than not will not be fully realized and the corresponding amount of the valuation allowance.",
        "label": "Valuation Allowance on Deferred Tax Assets"
       }
      }
     },
     "localname": "SummaryOfValuationAllowanceTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "terseLabel": "Supplemental cash flow information:"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfCashFlows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "auth_ref": [
      "r157"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by specific tax credit related to an unused tax credit.",
        "label": "Tax Credit Carryforward [Axis]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "auth_ref": [
      "r157"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name of the tax credit carryforward.",
        "label": "Tax Credit Carryforward, Name [Domain]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesComponentsOfIncomeTaxBenefitDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxesPayableCurrent": {
     "auth_ref": [
      "r21"
     ],
     "calculation": {
      "http://transact-tech.com/role/AccruedLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "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 income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Taxes Payable, Current",
        "terseLabel": "Taxes"
       }
      }
     },
     "localname": "TaxesPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/AccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_TechnologyBasedIntangibleAssetsMember": {
     "auth_ref": [
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights.",
        "label": "Purchased Technology [Member]"
       }
      }
     },
     "localname": "TechnologyBasedIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ToolsDiesAndMoldsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used to cut, shape, and form metal and other materials into goods for sale.",
        "label": "Tooling [Member]"
       }
      }
     },
     "localname": "ToolsDiesAndMoldsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesFixedAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TrademarksMember": {
     "auth_ref": [
      "r162"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style.",
        "label": "Trademarks [Member]",
        "terseLabel": "Trademark [Member]"
       }
      }
     },
     "localname": "TrademarksMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IntangibleAssetsNetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TreasuryStockAcquiredAverageCostPerShare": {
     "auth_ref": [
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased.",
        "label": "Treasury Stock Acquired, Average Cost Per Share",
        "terseLabel": "Average purchase price of common stock repurchased (in dollars per share)"
       }
      }
     },
     "localname": "TreasuryStockAcquiredAverageCostPerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgramDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_TreasuryStockMember": {
     "auth_ref": [
      "r29",
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. 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": "Treasury Stock [Member]"
       }
      }
     },
     "localname": "TreasuryStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedStatementsOfChangesInShareholdersEquity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TreasuryStockShares": {
     "auth_ref": [
      "r29",
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.",
        "label": "Treasury stock (in shares)"
       }
      }
     },
     "localname": "TreasuryStockShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheetsParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_TreasuryStockTextBlock": {
     "auth_ref": [
      "r118"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.",
        "label": "Stock repurchase program"
       }
      }
     },
     "localname": "TreasuryStockTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/StockRepurchaseProgram"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TreasuryStockValue": {
     "auth_ref": [
      "r29",
      "r116",
      "r117"
     ],
     "calculation": {
      "http://transact-tech.com/role/ConsolidatedBalanceSheets": {
       "order": 8.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.",
        "label": "Treasury Stock, Value",
        "negatedLabel": "Treasury stock, 4,044,842 shares, at cost"
       }
      }
     },
     "localname": "TreasuryStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ConsolidatedBalanceSheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r491",
      "r499"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrecognized tax benefits.",
        "label": "Unrecognized Tax Benefits",
        "periodEndLabel": "Unrecognized tax benefits, end of period",
        "periodStartLabel": "Unrecognized tax benefits, beginning of period"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsPeriodIncreaseDecrease": {
     "auth_ref": [
      "r783"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in unrecognized tax benefits attributable to uncertain tax positions taken in tax returns.",
        "label": "Tax positions taken during the current period"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "auth_ref": [
      "r500"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "negatedLabel": "Lapse of statute of limitations"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "auth_ref": [
      "r501"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.",
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "terseLabel": "Unrecognized tax benefits that would favorably affect effective income tax rate if recognized"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesUnrecognizedTaxBenefitsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnusualOrInfrequentItemAxis": {
     "auth_ref": [
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by an event or transaction that is unusual in nature or infrequent in occurrence, or both.",
        "label": "Unusual or Infrequent Item, or Both [Axis]"
       }
      }
     },
     "localname": "UnusualOrInfrequentItemAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_UnusualOrInfrequentItemDomain": {
     "auth_ref": [
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event or transaction that is unusual in nature or infrequent in occurrence, or both.",
        "label": "Unusual or Infrequent Item, or Both [Domain]"
       }
      }
     },
     "localname": "UnusualOrInfrequentItemDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnusualOrInfrequentItemLineItems": {
     "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": "Unusual or Infrequent Item, or Both [Line Items]"
       }
      }
     },
     "localname": "UnusualOrInfrequentItemLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_UnusualOrInfrequentItemTable": {
     "auth_ref": [
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about the nature and financial statement effect of an event or transaction that is unusual in nature or infrequent in occurrence, or both.",
        "label": "Unusual or Infrequent Item, or Both [Table]"
       }
      }
     },
     "localname": "UnusualOrInfrequentItemTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/DescriptionOfBusinessDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r81",
      "r82",
      "r83",
      "r305",
      "r306",
      "r308",
      "r309"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of estimates"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowanceOperatingLossCarryforwardsMember": {
     "auth_ref": [
      "r719",
      "r720",
      "r721",
      "r722",
      "r723"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation allowance of deferred tax asset attributable to operating loss carryforward.",
        "label": "Foreign Net Operating Loss Carryforwards [Member]"
       }
      }
     },
     "localname": "ValuationAllowanceOperatingLossCarryforwardsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "auth_ref": [
      "r252",
      "r257"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount",
        "periodEndLabel": "Balance, end of period",
        "periodStartLabel": "Balance, beginning of period"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesBalance",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "auth_ref": [
      "r255"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.",
        "label": "Additions charged to income tax provision"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "auth_ref": [
      "r256"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction",
        "negatedLabel": "Subtractions released to income tax provisions"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDeductions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "auth_ref": [
      "r252",
      "r253",
      "r254",
      "r256",
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation and qualifying accounts and reserves.",
        "label": "Valuation Allowances and Reserves [Domain]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "auth_ref": [
      "r252",
      "r253",
      "r254",
      "r256",
      "r257"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by valuation and qualifying accounts and reserves.",
        "label": "Valuation Allowances and Reserves Type [Axis]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/IncomeTaxesValuationAllowanceOnDeferredTaxAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableRateAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of variable rate.",
        "label": "Variable Rate [Axis]"
       }
      }
     },
     "localname": "VariableRateAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableRateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.",
        "label": "Variable Rate [Domain]"
       }
      }
     },
     "localname": "VariableRateDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/BorrowingsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r283",
      "r292"
     ],
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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 (in shares)",
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted: Weighted average common and common equivalent shares outstanding (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r282",
      "r292"
     ],
     "calculation": {
      "http://transact-tech.com/role/EarningsPerShareDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "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 (in shares)",
        "terseLabel": "Basic: Weighted average common shares outstanding (in shares)",
        "verboseLabel": "Basic (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/ChangeInAccountingPrincipleEffectOfChangeOnStatementsOfOperationsDetails",
      "http://transact-tech.com/role/ConsolidatedStatementsOfOperations",
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]",
        "terseLabel": "Shares [Abstract]"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://transact-tech.com/role/EarningsPerShareDetails"
     ],
     "xbrltype": "stringItemType"
    }
   },
   "unitCount": 7
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(24))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "https://asc.fasb.org/topic&trid=2155823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1),(c)(5)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(3)",
   "Topic": "460",
   "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12317-112629",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "40",
   "SubTopic": "50",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12355-112629",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "https://asc.fasb.org/topic&trid=2208564",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21506-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21521-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21538-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "https://asc.fasb.org/subtopic&trid=2208821",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409875&loc=d3e20015-108363",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409961&loc=d3e20487-108367",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409961&loc=d3e20517-108367",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "710",
   "URI": "https://asc.fasb.org/topic&trid=2127225",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "712",
   "URI": "https://asc.fasb.org/topic&trid=2197446",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "https://asc.fasb.org/topic&trid=2235017",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(4)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(l)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "c(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "730",
   "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5227-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "38",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5504-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "182",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=127000641&loc=SL5629052-113961",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.4)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126941378&loc=d3e61044-112788",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(25))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(13))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(14))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(15))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(16))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(17))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(8))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(24))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(c))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21728-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=SL124452830-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=SL108384541-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "https://asc.fasb.org/topic&trid=2122394",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1707-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1757-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1500-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1278-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29,30)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "https://asc.fasb.org/topic&trid=2144383",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900988&loc=d3e1280-108306",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 201.5-02(26))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900988&loc=SL124452896-108306",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70478-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "https://asc.fasb.org/topic&trid=2134479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8844-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8864-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "34",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8981-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "https://asc.fasb.org/topic&trid=2134510",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(1)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(2)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e557-108580",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "https://asc.fasb.org/topic&trid=2126998",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/subtopic&trid=2144471",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(4))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130533-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130561-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130564-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "https://asc.fasb.org/topic&trid=49130388",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126962052&loc=d3e4991-113900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.9)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=114868883&loc=SL114871943-224233",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(l)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=SL79508275-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(a)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "https://asc.fasb.org/topic&trid=2144680",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=126980362&loc=d3e28228-110885",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "830",
   "URI": "https://asc.fasb.org/topic&trid=2175825",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r587": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r593": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r594": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r595": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r596": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/subtopic&trid=77888251",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r597": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r598": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r599": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r600": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r601": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r602": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r603": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r604": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r605": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r606": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r607": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "https://asc.fasb.org/topic&trid=2122774",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r608": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r609": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r610": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "330",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r611": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r612": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r613": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r614": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r615": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r616": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(1)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r617": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(2)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r618": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(3)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r619": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r620": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r621": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(26))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r622": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r623": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r624": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r625": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r626": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(22))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r627": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r628": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r629": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4304-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r631": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r632": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r633": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r634": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r635": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r636": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r637": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r638": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r639": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4313-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r640": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r641": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r642": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r643": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r644": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=126942805&loc=d3e3115-115594",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r645": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r646": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r647": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r648": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r649": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4332-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r650": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r651": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r652": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r653": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r654": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r655": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r656": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r657": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r658": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r659": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "985",
   "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r660": {
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Paragraph": "(a)",
   "Publisher": "SEC",
   "Section": "1402",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r661": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r662": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r663": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(g)(4)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r664": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r665": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r666": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r667": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r668": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r669": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "https://asc.fasb.org/topic&trid=2122369",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r670": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r671": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r672": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "340",
   "URI": "https://asc.fasb.org/extlink&oid=126905020&loc=d3e5879-108316",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r673": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r674": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r675": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r676": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r677": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r678": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r679": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r680": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r681": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r682": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r683": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r684": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r685": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r686": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r687": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r688": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r689": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r690": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r691": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r692": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r693": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r694": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r695": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r696": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r697": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r698": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r699": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(23))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r700": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r701": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r702": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r703": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r704": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r705": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054",
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef"
  },
  "r706": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=124429488&loc=d3e326-107755",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r707": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r708": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r709": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(a)(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r710": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(6))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r711": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r712": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r713": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r714": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r715": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r716": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(f))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r717": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r718": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r719": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e725-108305",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r720": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r721": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r722": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r723": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r724": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r725": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r726": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r727": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=SL124452830-107794",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r728": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r729": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e765-108305",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r730": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r731": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r732": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "55",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2626-109256",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r733": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r734": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r735": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r736": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r737": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r738": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r739": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "270",
   "URI": "https://asc.fasb.org/topic&trid=2126967",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r740": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r741": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "340",
   "URI": "https://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r742": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r743": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r744": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "410",
   "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r745": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r746": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r747": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r748": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r749": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6327-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r750": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r751": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r752": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r753": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r754": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r755": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r756": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r757": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r758": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r759": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r760": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r761": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r762": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r763": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r764": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r765": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r766": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r767": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r768": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r769": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r770": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r771": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r772": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r773": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r774": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r775": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r776": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r777": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r778": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r779": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r780": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "740",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126970579&loc=d3e23163-113944",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r781": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r782": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r783": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r784": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r785": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r786": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r787": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r788": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r789": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r790": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=124256753&loc=SL5864739-113975",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r791": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r792": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r793": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r794": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r795": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r796": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918673-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r797": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r798": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r799": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6442-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r800": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r801": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r802": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r803": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r804": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r805": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r806": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r807": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r808": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r809": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "730",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r810": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r811": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r812": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5144-111524",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Topic": "330",
   "URI": "https://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  }
 },
 "version": "2.2"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>96
<FILENAME>0001140361-23-014061-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001140361-23-014061-xbrl.zip
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
M-9"LDN:RD-72VL1MP]J-PK'($:3A^*VJ:]F8$_6K=D*S6L^0H,;96L:4YBX
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
MKM^A&NTWO;*,/^ZU[)]_^C=02P,$%     @ %9A[5MB>4)=E!0  H!@   @
M  !E>#,R+FAT;=U9;6_;-A#^7J#_X9:B;0I8MMYLRR\-X-K.:BR+ ]L9NH^4
M2%G<9%&CJ"3NK]^1EA-OC=<469HT0F"#.I+W\/C</:333]0J/>HGC-"CER\
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
MQ/7_L%3!_/\NV+]+QQ]CS[<N'BP[: ?-JKS6X"YI7S$$U>%(>YP:C&X8_F\
M+](]#^TTV]>;.* $+UHN1! /."=NRT52*##RYUP&_AZ4Z)?/GX,2/=6 OQ8_
M_6;2HD>T:%M/1A)Q;QUM*9Z?[07HYDM02LIM4.QE8H.>Q-+8Z2>X,]M#K*/6
M,GL)>]+F=3YSW%&8J\H9)&_6?B^P<G7"<AS]$X6#^MNF+[/7Z@V6#NUJQ."-
MXTVI+PDNG-0Q!=C$ES^T+V^H3T^.L=C6CI-GXA]S7]DQ&P;^N;Q1T_Q-5[TP
MU6Y N_4"["0V*#QM''9EACN8^44^[Z\U\N?!FR9=+[1!NC_%77&G4#"A)?"7
M7X^*M2-"?UP1Y!33CNDZ"0<%QIE,HME*XAB+7Y4;42J.R4PFE)#5QXXPNUMR
M>DD*_CT2DI1@)C0\>3(X$&85 KK'Y]1KBSU 3#IH8*BZ=YB.H K9,_S+R#3;
M4!'1S#H.: 'IND(MA<6R&OOKBH.*](5>.#W4=B:(D;:JRD2!A@(_,4S375&B
MW'A0%!$+F-^N%_L-*78\CL&DA&ANFS[NU42<$/_C%_[CQ9C<60(P]UC@.W[_
MQJ3N=L(%4EABV,X7#148%X,3R8$3IS9L-AFSQZ!0O,XKXSVC>S V#5V[;D^9
M4#,SG"%WQX''YO.NKB4_S/60N(*L=6FNB:['Z7JJ\AG:H/_S*J,>,^G_G2Z*
M7)1/I*3EG8,,@_;M[2,-PP4GO7)DZQH[3:V30IKJX(,6GA9(LCYK_=^/#&*C
MVF!4B!]PR]->$,?/FB%CA4*N#968$2@CP9U,*II)SMQ6JI/$7 (B@L+56$B3
MV@D?;-LIJCK35-SEAAL@)3.LO58U38X8.Q<EPE[D)&W(*;+(FSGLZ"9+:A,K
M:KK9*F_[>7+AY/;$I-?)<BHPTQ)O@5J>6:L/AQ-WB.M=+,E[DB$<*Z-P:,69
MI+[17#X"D4J39VF3L,L=>%M6ER!ISS,%,D4= O.LFMXN]%>GTXTYZ#BKL8D<
M31-7QC&\K>=HT+!#8Y>VP^4'&\LX37/I]6ZRFVWO[:09VQQCKPN>=0)?WCCX
M\OLKY>P$OOS"%9"IG&MH@ZP7_395CF!9DT0ZYMFD@!%!NXL847Y+X=XN%X%9
MN[/FW(J50N2*+/<+0[ OU@R X/_6RS0%L;@4E)L#I@P]J)+;(**E&<V#V+):
M4PY\5, ,Q?8.(N=+8P-3W<G0!OF!^EMUN^["#%1LS_OS6@3?!R'DKF@[5J"C
M#PA00)6$Z5/Y)95U=UE(4C3: P((3'3<4\35-/PY7,%D=N$=$Q/X "8PU:@,
MNZ@'D?);<C_8@71M&40^LXV*#EN$@&++VTXB,%2:82WM,(%AS+JZ(3.6LJ5G
M5?46D=5%59YS O# 6G36K8#3V60%$M_P2YG*+I*BHR0Y=@*8BEM<'XI\%=7
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
M4CL?%E0%502'?YY75<I]*IT"9A.!I:VVRX$PG<-"#G>GPM9R.N20"V20BW_
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
M'K"[.LZRSI.##Y^X+^Z(&T[-PI_/DN"K[6R:W2>#]\+N><+N*F-)'A$6\+3
MZWDV UIHL;#1;CJ>CUZ9WP8KOM5N,*#'50D\>XL%WM7ET=?^&4FV315Z@GA7
M;GK<*P4+3566R,0@?]#Z4_\/SLOXZPE&UFH$SCTVL?W$+9K:D>-T-(IRS+H!
MU0"2*IF@G'TGK4M@@",@_T5,>D*),Z?PNZ_T,X,Y6=OKM7I-N\VZ8;/A]#S0
M#$&CZ]MNX'H=SUW"ZK7KF"OGW"?J5WH8U>V7XFDTL/+,!PDQ N_:=@[_.1X<
M"$'\\T&CU3BPAK2?/Q]T0=^Q&/XA\<4/UCNO>T_DD@] W@.-%U_A&^-4>*O;
M"GW?9<T6;W+P2MR6[87,:WB^[W10(CYX*B114!)<G1S_^O7\\_DO*"/.OAZ_
MV#DMX72<W,)J:5NL-+0RO1T6RZU\S+&7'5@^46)%16[Y0Y;!:W]\6(T_H#I?
M1\T_J+";W</F7Q=H)(^":74O+8ITI >UW/&M1:V4IS342@^KNS .<#]UGR5^
MFH$M0,$R2B4]%JU CM/ )':G%;89;[;<7K/7;+1[((AXL^&!>1JXMM=XBD-$
MN:/C++W&.0G#-&8W#%.LYA'_O79"X[#;6W L:'DX;;0[[OE]LW/8<7;I7*_8
M[9G,&?7I;&>42J?;[86]1M!N\V:3=T&I-%V;MVP>.LQEMKV,4FG7G6:KW>[:
M#QR9-&F>S%IKWF 0<D3Z%E@T*9@TF?7/21;E0>2350-2+S+9A![+!BR)_DU_
M__C*!+K^W3D[O#SL'UHGHW&<WL'V5$G+^IH>3N_!\T]\B4U9UZ8*3I\=X[F+
MVDI)<A0$&<]S^9_/4<(=0XKX8/4$K9"%MM=I8@).T'%YHQ=VX?]Z=N M(47.
M$V[]RD9 4M8Q+7):F-06AU463=$UINAV0LY9.W2[;JO)W*;GMD.OZWNLV6UU
MVOXR4X3_ZUE_#*,BX7?6$37UJ5G]200BH_'QJ=,]AG^>9U?I36(&N%WN>%[
M.[83-@/N])JM$%2LWVD$#:?5ZRXQ6;&73YT5"<+S[ +T,@B]2HBJU7%[/=[E
MO,.:CL]Z08=SS['=1NCT>JRUQ-2.KS9(MTLNWV:FO$C!B(K_-QI/66O-T._:
M+K@BK-UHVBVOUVV'MA,T_"YP9ZNWG&YO.=VM5^MRGU"%CT61'HLM?LO]21%=
MHS\#.HSGNZ_ @40LI)$%:OK^6-,V^VMBH(U3QHNC:F\6<C[JBZ.,LVE>=QIX
M7^#T>+O9#$$^MQJ>$_A>T.J$7A-SQQY6;UAH5N7T'Q>KB\\I[.3%,$UF U6M
M'G/;;M!CK.DW>=CP.N!0])S0:S>Z;;NSC-SIMGIU<"A6XE$L/OQU'RV<8QDW
M^L^_=%VG\SZWKGC,Q[AQEMBYF@7N=SQ!EK+P9)_.HFM>3!\$9A85$?Q,Q']X
MQ@-K/,GR"0:"BM2")\@5<-PWWH\H;C$R?.07[QZ(7.V2K&FT#GN=.00WBH(@
MYAL@< X^7$5%3&$\SORAN--:0O>YA^UY*ERN:RGUY[J'KKOA>Y,QXD1QP_9F
M*:O .>S.4^J/V9E&Y[#1WNR=^2ICOT0T_-8G: ,+N/UF&,$GI4AXBI!^@&O6
MO[J%BDY*O3O']8AOS/R0$!Q*VPU:;M!IMAJM'N_9S6:/V6Z7-SM\F=@_7A:E
M>!N5^M]JUIAEUC6+)]SZP3ZT';Q)LZ@ ]PD.T_K9]14/17*I8%(S$!%T'<=O
M]=JVXS4#O]/UND[#;?AAKQUTPL8RWNG5T9/\T_7+@ W@@1/)]5-W8'[7\1O=
MAAUT&\TF, /#O'W';O&>W_5;K> )UP(H7]2-P->C_J>C_[9^B5,/_#;,?N/%
M<H;A]IA+@XJY9'T%\_#)>8C/=!//D@!#NMSR[BQ_R/UOF$GPS8K$](R;ORBW
MF'4#1EG]6Y+>@!#C+(=Y!_!%/D&[EN56P,,H$1>#EQ,P.IIV2RW4V!]8\Z%@
M$.M_>"[_]8B$W)F\&#/11%Z[XYAJY/O#*G_ DOZ.*^K+!9W1>DQOB]G-5JOG
M8YO)9B/@7@B4S-#7X5VGU5KF*OYK.DW"*URV^_ZYN:PO2$-)6L G_YI$R![
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
M>24$!C[2@"\UD^ND>4'-1TH NTJ%OX@\JHLWBC54KA_-T72C$G7_9ZYP.J)
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
MM6A@+R.:$]9=%9 C["Q=Z;4<>D$4I@XX2&8&H(]-8<Z^K$*LB5Y.N(UI56
MZ7[DAM]>D@@46N(KD4AA$?Q18OVS,C_CT:-^_)\I[\J:4-!%U6$TTJ31B*H4
M/90A=R@MQ/C>W?NO?L!3&"])6&2\W\G)T?&+T*H&G'E^Q>3ZX DCW&W&F$"N
M"&V?&6%@PJ[R/#IIN0C&_?$=8^0T^ M G(+P+J%=;B\'54'MNC$J6I-2;QEW
MDQ%:%B9=Q1>!*Z<!I'.J3\%?1:OT;Z4V8YWM=A4A>5&PE2SH^+IDD166+'R-
M-??&220DQZYCK"WD.+0K: (*0IC9Z66=#XL@0,07'@**DE_;+)LRZ6!@C[[Z
MUVOQI)AWX*$P6K(JN$$&23U/NTVI@@HV^NLC2?46Z).$!!3>TAC:*-OT4,I
M,+3HP:![.(09&(4M6%#U=Z:73_.2(]V-=->/$QG'1;T9P<=F[X5RCCWW9:2E
MD98NI250=EINJ>#P!,DZ"[6V$RO*))'&?@0::Y3QLK]=NG)9I9M5-FK0D?KZ
M"XR0Q%VQ$I151X,S/2QM*/Z@SQ%L]$A-(S7U3'P:Z(+Y^'23S:UKW50TFT?*
M=+'*I%/_2+EJK(KCBD+O^(YD-I)9+^O+E79:]($190VE\K2@#@W9<*R$:QP7
M]'6!?(A>X_E#5"-"W<)ASA,C!*&2!2]AS Z.-#H@"L_*;#[0L!/*. GAK1U3
MS",176*=$9B51RD$T4-)*DZ[<!T[!XRYDT>ZP[-%0&)*_5QF;2N2\#O.D<!P
M.M<=KER^H:19RBBO]#//D"+$^'I%Q+?$[@V&5(0WTGAGA_3KKF$.[D>&\GIE
MF)C2T7%;]V:$4 _ EA./6-E>8":F6CJO*%\246G&DW(#7H=2/;=D31EE?NY;
M9N-/]@NT0UDVO7S'":C7*?C,)?O!*35^A%QL#F]RE-XD(3T!N86TGF+;F3^X
M-S^_0^>'QZ+8CA3@":S1-J,[L">/]ZRISG"*I@=WAAY6SEG32P_7-OV%)+9I
M^I11<6R')!XE.]'$KA;;^H)W;WY+HC'C?*3O_"%&ON94)C]D<_]PA:_'X3]7
MY7G#R?I3GU5_9SI>=K^%:Z:>=?XI55EL'3Y;PW+5SQ>ULJ0CV#&+OJI9YP@7
M^2A7!-+(HP*IYK>M:LP5R>+]QP*HMW9X(2_)AZCC!5N(&CXD+>00(&ZX<VW-
M&NXHPSIK^#4.5ITPTK3T_E SC"]FIP94'\WKU3^'XH_NT,:%="OYL)Y.5?&/
MYKB@\Z_.AXI*DE[9(A=V<W5)F!$5!C1U9AK2WM985NWL*";3WVH!IP,E,80T
M0C6N9:87S6;<M?1_-XCY2G..A#!TVI>MINFFK)5;\+?R-2(B:N7>RFYX3TL:
M4FH S6D),H?7G2&X'S8G<FD(7JU7WJ%4X/=!P,ITMJ*J>")R?94B(>-\ I^\
M9Y@KJ1.0.4V^*U0Q7M4,P"9T!R117CB"W+9-6[YNR)=@-=J$$=4AL%&II,34
M%0!:XSXLQI/EF6$RVJZ#%X&/=A5/!HU2>/;+U)/I!4=<!';NTO?V])7UM5N.
M#FWE"@\$W5F<P GC' W$898&1C:!==$Q-*U*J(BDI*:" 8RE.SF=T1TIO\M0
MK:"!#A2I5S/@M-FV,"+&O 0[P>'N.O"20_URP^@<.A"Z/QV*6\)IZ6"'Z'2N
M09!7[-Z+*M/,U.'*<5.'#M^2[%C_XPQ=HA=H^CT9ND*Z/*O)>94U[@#' AK4
M=\<THMV-:/@B0FY9!?2)B=;F9CPU"9&W9T05<RF(DUF5W/CYOL"B)!GIQB$A
MZLO&;YKC[_9+<N\OGAES&?:NFA=_#<V'C\;FPWWQ>D$97CY3;Z!*-TI,!EG>
M,[T"2_.4]_B+HCV] 1.AFBQ8OI!]%DM1_KP7G N%0P!^."#V"] &T8 +7@?I
MYR'99PUBZ0GR-I.@[=E>[D4*!F 89/^31%*"42!'80'(;RQY[SLNTH!]$I,.
M6C2P4$XQ?G"SMG%#TI_0$W0,B6D4#T7/74""[IM,N(S1E\-P^/BK16S7[MI0
M?;7]%()EL.48LH)3%JFI?^K!*T\>9M^Q>B\;03XPV*=JYA?+$G656E(OX5OR
M->I)X#?*E *U^M-SSYT(+2"/(.1]I!-]MC?<O)F&3SLC54CO@1<%;6EU/@B-
M*1A!]!T!;Z&JP#]HV@.QNS=#<8@Q9V_\^X"W9^]70*LT\>9A=L8;PL95;&PE
M?&X95B65_F:H%47&4'%')\ZTSF$9FAF E3XTZ=2 .= 4,D)(R>%0&#5*1PS
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
M)*1LWU7*%C5=YFB]%[A:(^MUHH=QTE1.> E<##EK>U2;]K,KR.C&&C6TMM!
MWOTBKU&.I@L?T@+7&I/5ZUOHP<Q^.OS[YS"50C=@Y LLM^]?U?J_C-POJT";
M8> OE0[WBC3](]50X0S0!#3JFK$/@\$46QM1E:@\_X!Z_[NPIE'A7@!0$6AX
MKS9^:^LZ2P_^]1X;_ZGU<I$C"I&?E\1N@>E<!3&U=#AQI<JF;2-]5GYV(N'!
M7&!P!D%> FBCNL:7HF8.VG[1))[081E^K>*;1)..B)/9<@G-]0D@-2HCI2^,
M0DHAK-'UWHV*9.2T4'\77L^6</Q 7 :VI14J.%D$BP<Q6/_K^U>9>W2IIH38
MF/1VYH( _P<UG".-**([04H86Q(O B1SPXNKRVKJYH(O)08-*VT/[\I;1OL7
M23,WHCT:_&<:>@.LD-*PF583BL"^AL:D)V-CTKZ$1Z^M]VBL(/4 $.(^CV 1
MQ#<7ET#O0;6S='7R4B56"+)HC8*:-L%B9,L&NI;_65IE(0@:&H"&-3<' GW3
MSPBY^]5G:7"T7YH1;-"50R-C9#?K&K/FNF1P:YC7:AK-Q%"1AY^5:*YP97L'
M=2.K.>K"N6UI;%-[1Z>X="PF!<=[_?:_W_QP</QB0A.=X.]C>GOD@EXIL_A!
MWK$PQ S2DJ.EWH D9WB:%N_15)Y)R3S\#1N_\K(F'UL%^S8<D,O@9\2L\TS
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
MCFM;";\[C2BABB^XSYC,4@QBX37K]"ALS:^=8\$L<A&U0[#:6QJ4A9Y+(?(
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
M0GSO_7A*XYKO8SB_0J^7R&?J9BF5+#5*CE@4-W4-9H6MMK9W7#<2HI^7H"6
M5"XVHG/$1J:"&1#^5"!8M N,NU3&O04?@+1-K\"ZX[GS,L1MFTN<U.[\$./+
M2IB<,_&"B39*17WL#WCWQ*<N*"-)J1"3KM+26#;48!V8V=;UR8J(+J5ZJG,1
MP(K.<33A^"G9'@O,M&/ W(&3E7\-13(G1V.1S%=CS_Q<EG.R_E#-O"D:5)XH
M64!+NZ8>\,W2&?OURJAL9FS:"F0O!B*#;R_AB:!.M%#/!&V6]O59>'U*KS^D
MBL!>1 :?PR802;;.ERZ-T<?Q<1/'9%$T0VV?LD4,PN'5Z>O)HR='!R='J@+T
MN!(5_'(<\[ 3LKT;C A4#?FNT[;I:&:,(625^(&L +SQDQ8%ITU)[V.(!AVO
M,\H S,!GHY+104.!3CL#:P=C**@24'6@(,ZS]Y3>AX_QT@J[ O<!+#CK]:D6
M2"<+^ R?M'2T=!;N>P?2JJ+ J;^5SKW.'>H,,#KR[,P-7#2YP(7L7;+6Y+QE
M"Y^1D/AQ;_=^QVP717O+.25^P?X5N52@/-#Q1<>P8&6"E0=K?JDM1'W-\6 -
M>G,JOMQHHP^9 +1\-O+ _^,*<5274C@;;#8-(O*M>$,2/Z3'30G$QFTFQVHS
M\O,"874./^L3+)D6'$FEPPVQ9S5U@-#_Y?.5=MF\$WQZ8AE'/5X*>[HS#$C*
M15"VJ',3$E9)B.:1U"@^00H<GSJK2F#_HL2"U&"7)[Z$SI03^Q=KUY1>AXGC
M)>QK\'+FP(4S3"9P5DT]=/D:L/?"_ARN1J34MM/O';J7+_/HG()@H?H\SS@J
MKS@DB*MJ@1%,D55;ZU(U-HC69SI;)3Z0*H9=>%N(X6A*7FTE/BN2;1B[D0A5
M?U7AK5HC*&\]Q+PUT:]> -G :4-LU%39<HD65. ;SI39<Q*?%5.A&1%]7T:6
MU8 , +/MSU'DFPQ&&[?5=D2*#U-,!!YJ'-"R,C:CN)VA $'RAB^C=[#L]*XR
MO*=@%UVRN7[M*JB8<X!:,0%[02:BC02I6GRYI7U$*1U+Q)45FLH5\YK#?/9;
M7'A'R55EBG1#FOM_6!?:\T#'<EJ6[]6E_(D$[F2;P*7V,:^B?-H-R)A*/"M[
MH:R%0AALIT[@J^'(7\+13^YDT]"%C\>Q7@DBKK/#A"L^SHR7+41?E)<2K3VE
M%<8D9ZQ<?)"N+PA4 %']?CM%V2E%<5(*1VJ:6URL5MWIH6M,7N7)W-MR2/;3
M3(.?I'^\1K^JZF5+#'= KWG=D[;@"E=>9P7]!BN0-MU#GT&())AFI%%H:GGX
M8*L$IXN6>3G%?+AMW3"%AJBSL"-:DU"Q;E,38%-B^)1OE_-&6R//WD'G?TK
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
MFTUQ'RE$H!!JB:NZ<HT@-=-\47.BIO5 'XPGQ&;XBIKV-<XJ312BS8._2-F
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
MO6</LC2.ST.!U+6X"P+!KE:ZB?B$Y],,1"/G*WN\L@7YS!^CP%],8, )AYU
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
MQ)2ZQ:QII^ O1H?A#;.@^BQ9D"7&O[<D2U9BE?1J7-O:J8L+_@324_6,I=9
M$&8YN\7/)>(:;--D&M-5= NX4B;>UU88/LN L0.\C*X$WQ+\O<C7!&:E=J%I
MYL3.]%E%EAI7XT6'<H<5AI> =%NY]DX,J5&I,&/W&T_@TYBVYR*8(#!=@4_=
M\N5KYFH/LH4'=56/KNK153VG4GR@274TI&IYG8BFUC%12U?U:!%I-R5;?;*L
M*:FK>IX?+755SS.A:ZMUKZ[J.>KC"[MCC9QC.,!X[I4/FKD?O<)1IZ\KUHZ!
MMT_X?-CN:V0>7?IPFJQM:60>S=JGR=JNKNII6U7//6?@&Y3VT,UH$*#CXUAQ
M <_3F7FG7@GS4.4/_\']&0X!O_)]H%-!U3?C&:P 08/@&:K-\69YE& 1T#**
M4_VPOHZE)&J%5M[GI]DTS>AB,,Z"?\Y85M#E<W@!&Z?""[D?,;]A]8JB->^I
M'J@6W81FY'$JRY$51'@U&E;-!*)4)9GOLB9H$RK7"H/L;G^A,,@>/%08M%@.
ME'$_FT4"ZHG+HA<^F<;IG*_P2074)'_LITF)$Z5^O( 'MG196UFI([[%FPX)
M">K]URMU"2 5[=R)5\>\H,H=@[,,:(#+41???2)ZBY?&>5K;$2S].,?;#\_Q
MK_H,F)&/82?&:1S W($Y$(!,O(\N;<S3^!:>A(G]P3)_;#BFK!>Y&_,$YT3I
M+55+Q(S+-!4U+?"+BYN,T\IDW=I=6G_9<[Z#[E.:YTO%/-67,5Y?J MX= &/
M+N YD3H#3:JC(57+2T(TM8Z)6KJ 1XM(NRG9ZD-D34E=P//\:%DO]/B/?Q_:
MEO5&E_&<.G5;K8=U,<\QGUJ<#3K]P?,\;7ZEC^2TT/R<T(PZCA::YRPT)WR.
M?68-N]:SY.V7FKE/G[F=KJV96S/W23*W[72/ I%P7\S=BAJD+[/,2!>/[P->
MNV1L$:7&>A"EAB[]^F74-1=^UQN]7+AP#.B1YU3T$Q58G^$.7RZ"K6 !1\RR
M&Q[/$2 HYX7AS7'D0==1(^/ CKDX<+64LK;FONEVGUT=QT<J><F+CI$09@V5
M<>RB^ND?G*Z0R_#H'UYE1/+%)6)0&AJ_V.:P+.UHO+SNEU%_^0&KNUA?]0WK
MD&HLT/@RY*<5 "6!350^"X.D$XZU20B+5-XZEZ0%+85'MU1)0J5"]?L%5^^:
MJXJ00./$W)=53Z(*J;Z$C\OS7*I]JO,N[L"=J!GSL2HICHWR!KNB^E'M-XY:
M:,;_.8MP1['Z;#*;8#(Q2^_@,=B569;/6%*4-R?R;$)H3_B/O\YDF99Q'?&$
M&9<P"$CL!^9'<01+OYCP)* JJ<]IUX YQBF\FBJFQ#Q%<958(Y7]J6F6>$I>
MEN+5:T88)2SQHQ*RZQF66&'U(LGEGN]8V[7X+Y1EDMQ;*U*]*/:KO["'SHHB
M6 N)%J89K!3OM?3I<(GL&A6$RAF!+<%JU+_]EY'/O#P*(KQ&M09/MJ1B?DNI
M(C+-0,R##DKAA,T7I ^GFH&(^%R J:W,X(9%B"F6J:D$7-UTF282%0\A]$J4
M-1CS_2P#90*444A\\.D8')F;<</DZ495O",SGOG%3-3>1;7WH_"58HTCTR^N
MT"TRKD% !6P=S;*@9_[6O>X:[T!],>!)<)1 <^&B/2KZ9"39L(NW*4+QD2Y
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
M%(*<="K/@GCFPU8<LD=GXU8,U1AF7*ON%W^^-V&^QOOL*F5M=IJ3'L:8]+O
MWA"8 I@E 9[TP4D"12J;W:H\BH*:68"GF-<[QFJH,_6NAEL)R.-Q8/,Z[(4<
M:2%O ZPTD[T<*F$^CJ93:OU)<]F!$25A3/8+,3NF8 ISM(?JI;_AZ8Y(0B5X
M&,FQ;@4&JB]MU2IBIYBP)#DG#J5F+%5V7_8]U]2X;,N($O3# J"?N$^0MEM<
MB%=N,%4(3=(D@L& =?+E)J^.,<O9C1@2UP-O4. CJJ5EM;=NI25JJ=OOH#8%
M*._Q..+8I([9B[))H;&9128%._(V11FXU=H%U<*"^QH'J6&KPF2J>M](T:Y7
M^@(&2BKT>LM:>74CD8]SL8SE?<?VMUQ9"2Y7VN $XO3*0:K&2&FIJ)RHA*:!
M'8N!_0N9(_H!?]SQ^!9Q<9)B7++ZY[3 KL"\8(EDDB@7^QX*1@0;61W%"[U;
M<?DRT$PI214.S@RGCK\H]<8M6#4FSL/0WZJDJOP1YF4GA%*U)%7R?=5K8+*S
MY'N2WB6-_>0GULW=U]W<A^GFWJ1[<DDC("^_+57)_G D%;R=Y72D]5Z^8!,E
MC' V<(K7W ='%2'DRHLVS_ !O%?"-M\T:COZSGKS2O03BT<^212MWX#R4^/3
MI\N%8?!;GI6_(SG'3'/"RO8S\8JP4J@P]+=WQEMLU?[<O>A29UNS\I5Z5X!@
MX'GF;1I3&KW6@XPZ!":&4(:6N50_A(%JFD4@ 2P&-R+WQ^ 'Q\*V@_Z-4'\M
M;:NC]&=%8FDCBK73]*@E&,V1,#P*=J4"280 ,E8.!9 #VZ-)^9U%K^@S# E$
MV[0QC6>Y874'6"MP%LGO0W!4\(I;/"[(:\_97:HIP+7"L_!PO]LS7XHM+>@R
MD3+Y4T4JPEFJN3GU6W)GF<*1D@'^/>L6J0O;[96MI%UTZT2LSA!--.2T$2;.
M"K=ZEHCCMHWWMOL8.F# G2/;"Q\2@@IX#%^+W:Q@!XN(V #^0X-4W2,UO^SQ
M+YQY_\<IUP$OK"))+%HS1.4:MC0#:8:]EZ)4'/@1/0_64#U"1!5@=10.(8NP
M5]AYMLC89]XK@[:T-E[&[O"*7M ?\B[DOG@@Q N1@?&-&_!0\RJ;?E ?<+W,
M@V>04FA8"QW\%.:,K:[2UU8^-*X2!2R+?$(TF" XIDB=@KL#%.PL S\0AQN8
MT"[$5=A8NNZ!'(C&?^FF8'RA@G&5B04)D7(U!GUZ3LX6GJI%J70\+T"(8T/T
M6IOXKK_.0#O)*Y%-TD551DG^$#0X"5&-B? 9I;,:MD!!!5:P!K7]0%<4@QAR
MN<KTQONW'[^]NY!)N#*JD]XD_MRR-UF.O.)9?&)UC2\*XDQ^LAC>+-[\#-,I
M@4S/[K- 2X"G5FE9Y,ZL41(;C64(I$;IOJXRUT/2+K)^R]M:_ERL$R]/SLL
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
M6$SI".3J_<P!;1EE142DL=9GW<]LSO@/E0:LB*&J\U3Q;3R;) AAL@PT(Q%
MGN1\[MJU?+\^)IABWDDDM7,5V\F<^NO6.:$;J9[[C?ZV[?MFVO!>+;L-A;HR
MQC;8LNE _/+R_?L/'R3'/@;]:;0-P"3;-'NR%1G";I1_S'YAY*1X]8D<>^^2
MGTSI)X]N=BUK%_02:%Y/)H_5ZR,<SB-H<:]__L3=<A$M?&?,_=2]^F7S7>IW
MASN1TFU1W>R:HXU7LV,)V95&V])>R2/WQMW:E<K^0/_O<"K;<O>NLLLE;T%E
M/QBI//7]#RGU)TU@+PJ@XUINQW:M'2K^Q^SH0XI_UQ1]4&&WGJ*#;G]S*_YX
MC?XH\7AR)N'0F^FX@TZ_9^]5Y^_3D_F&-ZH<B?_],\RR50_]21/8CS+O#<P=
M*_-M>O&[V]#6^?FMYYU!=^@>2R#0^LW<P&S48(?W7KM#",2($(L.ONB\RNL%
MN65FD6K- GDKK:QM6Q\4U)H1Q> (T+E^\(4K=&25]_K!ZQ? "\"V*@M?HO/5
MD?ED.::LM*O?:24@UQ3,;54P@VE5 2X'7K$IT('QK7B#*?;')0@5>LMCNC2[
M8XLGZC4]9:<SWMNAZFESN;!UV:\WQCB]XUA+F*0$ 2[GIRI^FC+]QE(2GNJ$
MIC42O,6;TD6:N&KI5DW1=/6<>$FD;GK-$-?[-37,1^7TZI<2Y_+NMB1-SO'N
M-U&2N/H$/%+#^*;O\?/;U8]A[KBU9Q6=9$TP5CY2B0Q,1(+IR?O37\%0,)*$
MSIOB?;>1+*2A4S."!;^%*1#X:_FBAB>;R+8(5TU7/@F"B8V4S8[P%3Y#J*/U
M%#RNI<[HK2J $H5Y3K<L]Z+J.B3:.)KF"_5VWVI0 QV)W20; RH$K'VVT>RA
M*K-$;WW<]C2T5S1UBIR_34'8C$_46T9U=]=%-O-)D/&G]6T]YBH[P61N%_9;
M0:K74=&X+%&^%NC0>ZSBW <'E6665PA(,J_UMEYE_/R"% 4CTZ'6CX,*5&H)
M$_!3 ',UWGOT[PF=HIP.H:X!D7;$@B?6%3O27;&MZHK]NVZ*-:P>]E",(R^2
MM40-&)[&M;PR^$$'I:H:/DA5\)'>D;0#VE9ELMN^(6EG[/BM?MT<.-;^3.+'
M9JIW4R)HKS9$+Y>NW'^WEV;;UK*M@J8]'JYM@CQ^U*U1I]1T(0;Z&<IL_R#Z
M)T&8?^; IDW+7K@7Y"V+*>-S/>:\6-\1I*ZS.*FU7R\ ?=<N15&HJW."Q5X'
M4_4,]@1S6!D?X^V:M]SXA!=9Z+U1>U-AOZV_'D5O5[E="&K\80'4^'GLR>>T
MX'0GV\+F-#D%/W.D<WH^J252(?<?C [7^JT[<. 0BO*GG,W535QDOQW,=3D.
MW\H!X7;.O2_BV,C5]"AF2PE7".]:\]E,', )0%\>$> AR$@%22&ORU3@%@0$
M6?OA4N>\N@M'IA9%QK$&Y\X?%D>!<"&D%X<ITGMS&UH2=R^)SA%)HDJ9;5$.
M=YCNE+.E2.C'J0:?PZ[37^,7/%C<L3N]^"=FC#,>_OF%@A&ZN[OKYMSOWJ2W
MOUYD_AA\[_Q7'MRP[%?05NQ7R[0&CNG\"HNV+-=T^I9MFXYI#X>_<D%&Y]SN
MCHO)ENB <F=1NI!M4L8SLKI]=YO;O+43.SR'%3>*<A'UJS,H68A2(EI_X_XX
M@>G=8-O?Q_I1U9F\=(.NXIO.7]$EH]77RQB#2JR<KKT.Q_V_9RP#J8[GM;LL
M5-KROXVSZ_>78)U Y#ZG70,H?FY;EFV]JF'5"6PH> RO.YK=P&:!5A9.]*LU
M7L!6Q62A=':G]'N*I)@C%)71^6ATCO_J];K%CV*K N+M2D#VM\%+ O*.YS"^
MP)#"$UV4A@L\>08.SQ2(4F>%%?%63+K%C2 9R[%BK XB^+0RV+,[AC4:#384
MHLMU(G0IZZB6!&AX_E^/E9_J+N@A36VT%PG:GP;<@@21L;5MJRY4L*WBPZT+
ME7]R5J=)J-YN0:@NIED4&WU4_*:YL5G"'=Z+9<+:S:&8W*E:)?[#^=]M^UTV
ML?\V2PO^4Y46'+.ANI 7R8D:.KK0)C#>SL\_L;M\,T].Z_5*K_=,R^F=C_J@
MQ!U[--RJ$G>[UM%K\&L$2P6.(_A3O'J9ZG_K>GTS=0M[L4[7BE-'&8I4935*
MXUZ?6[]>&&>H:1W'.3?[PU'OH1B ')C^J2K;GPF6Q9\V>3"6K8)E=[LZVY4Z
M^YC5ZU8-#C@\?A:5W1XU:.'U4J-LU#;G\1___N,">X2V/_*"B*\-]%=NK*QN
M:UCPI1;M\ZY)O8'C!E)E6.18VOOQW8X@\49&TW;,GFGV1\/AKW-SU'=,_N-V
M-+K;;A1DF=*";I-CSWZ\VIT;N#_#O+[_:4.+/!JM-\G;RRK\=99P@\ZUS9ZV
MQ\WVV'9_#7AHN6R*31%;M<@@0=L/HW8J0?NCWP8I[_7=DW0Y3F,HMIGT?50-
MFN_PKL%(C+O4$X/NL#PT-BSW8EG":A<2E#D0V^G(-M$&$6V%_6J3^%E]^MM4
M[K!E;M<?!NESCDOZ]FF_UC8FXT]EF^K7JL551)Y_ UDQ+FXR+D1D,V%#+;BW
M3!]YBY8./M=(6Q5\PL?;EC;WN*1M?^2[1]JN5GK#MR9T:_W+GQ"ZAT]^AWL4
MO.,R<RYYF8-*\,ZW;^AZQR5ZK3!TG]/D'+W&69%F<REK7T2V:)LFSM]:-(?V
MS1J1G+G:P.WI& %(VS\NX=H?U=[3]84D)Z7$= Q1V/K7&=@71YX%=%!R,$[S
M>'&'2"-E](<?OL7&R<NN<3V>Q<%DXQ0*"IUYFL<:QV'@:JE(Q[8Q%=D?# ;\
MQZUEW@WO?FQ;# ?')89[/"5$N"5JIJOLUGWR=EW@%?3&1==XQ_\ V8N2M)+:
M,F'H;BZ&PZ>>/&QB^ZK# )W+7/4R35$>Y=3"._/'MKW,X7%)X)ZK0A3P6[-5
MY&&(EVB#\_E7EHA*/^+EX:YLH[76-NY(*G7)XB92:6]=*D?')97[(^""5&[%
M2*X5XD>(Y9./Z5LIED=E+&TZ^;/<NK'<ME1:YG&)Y?X(^%A)O$B"#(;_:]?X
M/0U#LH$L%UBK/'A5%\JJO-]YM%CNS5K:[AY;9([*6C:(Y=;/*"Q=TK)6+/T4
MI6V'1E.>DE,*T[8>(9QKCS*.6CB/Q&;:EMOOC4 XK9XSZ(-P6N;_;E\N;1*C
M(R]?;2Q)N2]+N@1[9$GV6Q\3KJ^6>6*TN/MBM,HZ#^X7LL46=46PTP)<=4P-
MN*K;_(_!.5LX7K.'EK/U(F/GZ/MT/M$U#FM]I+<PS \L,)SBS"4V]<=BS'RV
M: BD$^+049/]".WM_OPYV(:G8'0R8/=U;\^Z]OXA=B);CKMU\7"/WBUJ"BV>
M+C)+S?S][>)@G\F8;N.CZ,&^8A1YJ#[4"805A !;Q"N_SGO#D6MBI'*^]6H0
MJW?TYJJ2NJR\UD$BDT'(/A/&0L0P";\3USP(>7U 2CO&IT^7](0*6!;*000Z
MC&GMKKNN?4?6(MMAZHS":F$DI?OL?BW=U]]Z6J%_],:SLIK(=5:C[=Q8'!_A
M4O;W5K-OF533J#/BS47[YK!7$Q%GZR(R.'Y[MB B]M-$I+18ZH37%97MCQ =
M9V]'O)9N=[FOM]/L[[#=Q1J>F&UQMB,X)929+<  -\6$HBRT[,O<719:"([;
M)E"!5LC-?<6\.\CYC8[>Z#R0P/C$<N/O$%V!TH\R8MI:,F/%+5O-:#RN G>/
M)D>7X*YSUE9-SFCK< +FT=N<#U&6%X_*!5Y^O#)^G]V,X467=/JV3GYDIX8X
MQ#='CQ"?T7[%Q]*69U5\>B@][F"'< #V"2#"/3Z5CI?7?>4L+N;&19ZG>'$T
MO/3##!/J_V-\NFJ2)#KM<41<WFM;G[\4\X&8G39$*S[< 'RXD37X=>Y8(W<H
M?;BM'TS9QP\W]X#DV+!_QN]L$J 1$I;G(\0]W4_=RVZ3U'Q.;^L5+N9C<@9K
M3W"W;H%Z-+>!MD K%FBP7']J;[TLW#[^8H>U#MP3I4<EW*AVV]H4F_W>+N =
M>6_[D9WCL#DJWT;1CTOP,KM)M]FG7 ?QTZ*S4 \JHR"JLA;.VZ.JK/=WX"-P
MTC0FVIJTM;/3(.CXZQ<^I4S4)TA(W_FZPFJIM4M8/C9)DQOC.N() \%+J/#A
M-UC%%#,*G4VKK)&;4[HGCB9RQ412+\S2B5' U"F)C?^+-X+/U1UN;8NB4!!M
M>X]Y\".T9WT+!#$BPHQ&V[=HIU><\"TU-A9.*@FRQ:VKUGVRN=[@+=Z0M3GP
M[LY/F<3:^M+,:2NWTDMDCBQ[6.\E(H$XO5*$1PN$ /BB%B#I#*XQ5]L5B_T<
MO@JQZ.D>NTWDPJ[DXD0J#98[XSYP#GQ=@$O3*D&P3U$0CL1 U+TOVY2"X&[=
M\]H^9@HRB>V^.85.\#]83H>LD<^3A?3X<GT/10_6B 20*<.7_T3 XZZ3N*TG
M\.P]9AZ.Q/8TBEQOZU#LV\=#V;G(/4C [5P'(^7M';_E<3HE24.)6B=_PG:(
ML]E'()S8O;8(V;/H[[9T?[?N[SX*EZN*/=R^9>X(W\,Y_M*;RQ3K-]DB0'A3
MOED>O50H'B*U]7"(TC$<T-*7;!H5H(^E6:!"'5FE\SO+/-@7XUV4^RGLT)R^
MQ9.AJVZK OVJ4U5'^@]X6_9V96UG-6Y[/":=>7D41(QNJ%X\"MF0R>VU++XS
M7^<T0WA@3V?+QL!V=G"MX [OEM[3G9"7*?CZB,PAK,AL8GSZ='6::I/_<*PM
M,Y5C'1=3[6_7O]+]=0X[M]PS]JIV=[2\%?=R'/$0%"?W9X31]R6$;\'MB!*#
M^:!J X+_(^5WC3!^\"O'+$^HK\$A80G/S[_\B/G<0.\&OL%^]Q/-:1+O;K<F
M WAW^[=$'E(A[IEW/T0)\&@$5OV8>/<P>G?+G+M]OJ6<7N^0.;WMQ8N;JEJ,
M[-:Q\G26Y3,F2@6MH?&W[C66 "INMIR>B:$G"](I^L/UI]4S([/?#H[?G][
MZM./GZ^/6O=]3.(HX<;_O/WZR?B8Y 6ILG<I.(9T+1F2,U(?!^KC((6W)&EA
ML.F4,U*$^.!'3&DRB9$- :F(<CSNLUD.PQ2Y>$W!;H"5,FY@$T,0R)BG'*.:
MCWK?B<7UR#;7E[\?M=*ID^D;^Y$FZ60.*J?@"5U5C#<:3UC)1Z<G]I<7GTY&
M[!OH=\EB?Q8+B_(I2K[CE:%[I>9^I?'=^P^G+(WJ]O%#$7._HOGIXNTIB^8G
MYO'X.0CEU=?WIRR45QG'1-P!=>P^Q=(]:I&\Q$,P X^@U_BX9W2Y=B%/Z.J4
MQZ#+AP$9?!*@HUP=D&U8N-!\LGV0DVMU(/_N^NK#IR@OON%47CQTROX@WUI8
MR]!,]B>N3WR +WMMX&%GY+^1%ZG<PX=L5J1KIK.R18O,MXO9_L$2X#L*NY"/
MD/>,-(._)U/0)(PNE9[B/=/P(<LREHB''V8MS4=/I,Q_'A$7?1N#M3%DMY^(
MOL5Q(]908OBM^66+_%*K&3P:#L$T(A@I P^LP261)^)1KI@&C\0#S#**\W!:
MH/GF__W/__S/_X_^MMZ\,L;L%O,]')31)"J6,X4?"SXQSOI@]\Z\5V>6^0I?
M\97?J$#S^OR_-!=NGPM[Q\2%37IJEB51/GZ4KFIPFT[6>W+Z:_FG/J<,ZS,?
M+"^0Y:_X#\69VR#SG:P.]=(X0 _,6ZYC>1QG[K9(HG'*TFW/'^:]>XI2=UK9
M@?A;:I9&QO\YBS*AJDGO@MI=5;<&A%,0V!3T2W^,OB.=UJ#818D?SP(1LQ35
MT!#<!/R'P3P(B>3/V9GSJK06]#*KUWU@&[0HMD44_:,3Q>KTLKIH" \<@EG,
M6RR?UYR3('U.$1>OK!M,\C2.9,?3ZL+R)3D$"2LK"1^2L1VF1!KI(D2_WZW5
M.E[/)L#&\^Z>IO7B+Y_%H20X$TCN37?HQ'I";-T3LKL]7L__UQ]_^WSQ[6]?
MWU\?3,=<U<(M5"_2#1":!$QT5="!Z2*K=Q:\*HLV!&H UD(O^ +PM35RW(X<
M3USS!F\8L]P(L$6,3O<#H9LR4>\,;_? LL/"X MX'7HD'A^S.$1_! <BST$\
MT!&-G+,$?D4#@K$9IQDL*[A7?H^YP\<UU^2Y,6:S^N9RR 8OP$*E/[^P7RR-
MU%\_TH[=S:\7GZ\O+K\9W]Y?_O[YRZ<OOWU\?VU\_'SYY>O5EZ\7W]Z_^YDC
MC,=NS.*O>T_Z\<:_/NA*=DO5M_/7&[B#:[=*V0!E*J5$H 4PR,^Y9P';T<PO
M_O)K_NO*!<5M8L7=$O SF_ GD7#7!&HTG<^77M^B(CY"@JVI,?W)Q-SNMO<=
MQ%&OU15YXCYPI[7>V89N6.5GH0]&Z7;I:GD\3N^4BQ6F,?P+(6RFX&I11C]1
M7IA\6<V=PW-JF>GQ&?I/Y6VHJ?@T(#CW\@S@9%VS87<X?(HBL7M=<WT5QN'-
MXS6,QHI9QC?0.4YW<Z>H625W+;O%>T'*=X-]L+J#P5/VP7*ZUCJF:L,^H);<
M8!L&77==?<[/^<B[E+6-!M@E@V_&&3ODK(T&."J:/D56MF/"-P@N]L]G.^X8
MOJ>=Z!VX+WZ1+OM]^^?T76O()@_R=.3J (<XSTR(SJZR*/&C*8M7)6F3 SAM
M)[3M?[XT%?:^)>;_NN"W$')?=(UW_ _$Y$_2$U=>V*H0!81"M:9_&.\TX"R'
MJ#)3$-09+U@V/[AJTX[!D3D&ST^\:K[!BF!IWT#[!IJFQY$7^$<4QQ&;&']%
MU?4A0\B$_,15U]]!1QFE>U!#&+GP_726%'CZT'PTI#V!XQ*Q W@"SU">:J[
MJ@1I7T#[ IJFQ^$+_,[F >?&%YC?OXPO,4CQ1A;PF'77Y9A%F:HL>)NR+#BX
MOM(F_\A,?BO%1JMH;78U38_"[/XU'2?&'Q O0.B0GOJ9HCY\/PG).8"9;9F8
M:&6L#:RFZ5$8V(M9D/&Y<06Z8Y8DX)\?7'EH&ZMM;!MM;/LD1:MD;68U38_"
MS+YC2<1C=-$_9!$//)X=7GUH0ZL-;1L-;1ME1:ME;6HU38_"U'YE2<#BV+B6
M^N/T>U&TJ3T)\3F J6VCK&BUK$VMIFGK3>U6;V]<&(SF&G ?[^J.4I@P8<OA
M#1QHX<L;'NE_P-Z_AQ%G$"]<=8W/7>/W*&99=.H=)MKBGX04'P+VNI26%@G+
MB9J'/SV(7]\ 5G4PD-D*1FMO@+IR\&-&L'T,DNW^4=TVQ?0\R.3^]&_GYU=?
MO^"U-;A=GV<3CV=?><Z+E_#W2^OERY?GYW_Y^/G=^_\QOGTQ+K]\OO[RZ>,[
MG+7QX>/GB\^7'R\^&=??X(,_WG_^=B]([U$#F V[]N,M\)9JP!^",]_ =MCK
M;X';2/..NN;&FGLSDW[/AO[4O70-^/ZCI\/[0W@N4 '3D"YIF/*$FO*^$L@?
MQ\L@KF9>'/GUUJ(/438QSJXN+[Z\-3Z^,Q8<Z_.<^^?1C_-Q%,! KS\PO_C?
ML.\/+9L/7<9,=\1L9C'7'UBC@>W;ECD*7_RE/QQ*9WN3?J5[B'WOUCZ-#WZ*
M:MOR43^<VS]UN>,CN?#!BRYWQ84+.N MB^GJ\.LQYWB?#^%<ON,^7OV=&8Y%
MCKI-C:/PA[5]CBFW8?L<\^ .;X]CEJ_//"V]M< QM:LO@%6^3+D(ZW/XG;BI
M9@ZN56Z@<@OVRDFGH7MZST?W+'+293J99GR,M^_><N-3FA^>HTY#-_6?JVZZ
M)'1FQ$0&\\: MR!.X5F.E^Y9@S?&^W_.HF)^<"8[#;4U>+9JB^5CXT.<WFEU
MM1U.&IZTNBHO%]MQ)'ZZFF:TR1T&:TFZY8,N0QU?/>IRM[U/XK3N3_MP;ND+
MU!YS.\8.D[Z;I;2VRNXK^;'R"/G1&[.U:PV_B0M#ZFXF&7J"V:"4BCSA19_A
MD'= ?LM8DN-])=^X/TZ +6_P&I&/B9]F4SR@Y\%#%\,>_A[++],HP4ORY,4G
MZXWG87AAJ\S^#RXN;6>S("KH%C_X&]A_ N^8HP#X=3_"D]F\7&3S@.\>IK=P
M!HPS'%E>&G\IAB^OC7\H*]BAO\2%-3%-9&%6^8+#G)89HXXR7/Y"Z!]#Z-_9
MKH'TJT@P;X@$N8@$<1$^NO-AZ<YSYH\59$YQETK77M[# PN)TF"=H[^Z*0GY
M?F=@#&*\YO&6QW/X+N09ZDEP"6&;:T18V,*PY/%J,Q5YND!.(YUEL+,D%^(F
MR =_;L"6YZBL0Q9E\;R#J\+:P0D\D.&C\/44YIF+\:HAIFD>T265<E\DMSR*
M2_)9++@!;YZL.$+<<@0?;9,,\!AL!@PS02+C_?0D0=* 3 6@6PR4N>$)3"3&
M&RY]GT^+ZF[MOR51&?G1M"\F\%*?=7_>].SP(O0I* $&MF9N7+&,W61L.B:F
MLJPW,B>"ZZH9T2NU!X=4FQ>Y$?#<SR)/[#M&2H;5-^1=7 _R<\?@82CDRK@
MJL9&R0%U+A6J0'#9A!?CE,QSE-S"&+AEMRR>B?O7PRR=X/A)@#;<3_/".+L;
M1\");#K-TA_1A.;"_&(&$Z'OX5=,R6\897EQ'H$XBK_262$E%M1T'N6OU,I
MO0.5N!BA:4H5MW;%,E!:;GFS5,,O8?$@,T(L<F$^Z!(R%B"QI*Z93F-Q#5D"
M-))OS7B1I23TI)Q^YO[J'=Y' 7M&RD":_X.Z>V-0G1NH6# U2N%-X>'(BV+4
M08N*4UHA8$<0VQOZ9=?X OI\Z5<1Y0WX#]3;J"F5OE=^T/)P#T\/^%#<_XO6
M@SR,O&N QX'39L94'$;7=&6(A]%9Y=N3+L57RW-K)6-U:,Q;ND9X7$A7^&Q!
ME;XRSJ2TT EWY7" &<!)R OXB&,]U%I5B$'OEB;**"]K%^]'2P93R )RALI9
M_JU[W35"'J"2!]J6]_C%["XO;5-U.;F1X7WU] 6L>19+$[5Z#R ^4=X%"'.8
M1'F.=%%#TMH.>!D\>9' #<',QZVOB+UNHY32*Q<K5F!\&Z=Y_5M)'GB$ 4'
M$H/AH56#[D%[*S94O I(E'H%@S?B101I0CL,@>Z,<&,-YH%^-.[&'.^:WM"!
M00X),\YQEJ77@INO'NF4 P8S3L*39:! X/_"#*:%"ZHQ38X.V@++H>KLP*<9
M+ [>!2ODR0V[$5_*-:)7(]:HW)D(@^V$3$("^C0V4I"!V@K$W9"DS<'F39D(
MGRNJ=/!%R]PO]P[>)6[F1AJ@?)&AV/!]A@=;C&M4B>KI#(* G/9/JA5\:E6S
ME(8U0<VS1GL]9MG$<_ GNIVXJU*G):F1S]#3$Z\_J,A\J4N)'\_0N90D%VYC
MZO-@EHED+O QSI]4?91_S]=RI-J\#;R9>UFW4Q>SY?F@- K;$0C-B#2F>76-
M:]S?VL/EVO@/V"N$P>@(+P:T<R$<%7"L;A$^W*?[2!D13DCV!+6\T']!E/L0
MN,DQ-UNCL')RDUF<I[792#=,O:G17Z=K[?'E>+MJ%(+6A@V&:9-CAN8TX'C7
M:F56.QBCW'$(<N!_EUZ!W(KACXR*6#W"V6 E_T ?*X[XK=2&-24+NXW[!WM:
MTWQ>Z<[4(K?N<\C=VCIWVPJ'^A*]%Q^!S,EX_<$*V.^#)L[0&OMJ5L*D3L2L
M@#Z3R2R)?)'EHEN4T4*JKQEH-W)0,60CB9UE&:I;F1LH[?-B)J/F2T@7)N.+
MKTJS91]TX6L5P='P^$T$\^'2\6.PUV?6*YG^(3,AU%B.P]85)KU<KD?8C$V#
M7GK5F?T*H\4TOI7>'7G%$64RP"N-8_!:2+'G,^__A"'OX!0P[1;S'T# X$:J
M,2)!N4*I M?0)$BY<)E8#/\F7Q+<*)#6NDI3+L0&!J]@WS%(A36![4MC+FR<
M](7@/1U4YK7)2<7=.#O!(QVI>\FK ;ZCR)FO3*UQ -3,2=WXK%(M-40Z("HD
MC?/#1LPT^&N8#HSL-PO]W\OL!IW8B P#QC#G.C/TE,P0[E53<JB6S[TG'Z1&
M$&_%)/V\,3NT](P0$/_1&2%2<X].!H&%4'X4D -$!-Q%+O2<N//>+QFHR5T#
MQ4 IYQ"60PX0]QDX<$)X0DR(H^![G(1/.7&+!, M@."A:$KR-D<DZI?J7 3G
M4*,/+/H7R^Z:X*+',?I?&)"AB,_RO,9J]B,X+:K)%.HM^@X,4$$#@$[B!,&_
MD/,#TB0<MP$$YU^T.<AJ_*#A#QJ":7G7"2X\"A8J?5''*S804B$YH2$1=3]C
MJ..1(FT4-J+9&B5=Q@MDU],8]A?&%F:W<OL-NOP( @2>+])G<>!J;HK]U(G%
M9LRM-JET%=A"8%+@21SS:4T0>RGSA4<9;\B$8[3'A7#6?U=:YX: IC$+)J;:
MD9NCWL/EL8#4_7?C>>WA38569;3D!M5"I 5M(94+S7"=>FE6K6^$0^/4R5?Q
M$8M]F8:CB%@I"5*3U1MQSE%29.2C=53\+.27'!Z1M9,3Q_Y9Y/!J[+QRIM1Z
M)PSH40"GT:\J0N9T1B6V&**%&Y$^@YG'<PCOT)V*\NJM<[#U0M\:8[#*(#XW
M,GM%3(WG7&&(U11 C5IH7X:2M;B](UT/XA8PCL O8F@9U:JTLXHW5>+F@5VE
MO*M(@*XG;I.05MM_4*UU$00JB[7>LRNIVYP^P3VHY0;$3\L,B#A,3+B08Q*_
M.IU4%N&QWB]YWCEORLQT,,^"PZ-^@,6?1:]D-E FZU82@DJVFQR;1BE_V-4
M#17!>VO[TL!)M>=%>@H7(\OXE<:0E%E2%TLOKKB)W@LOQFS4FK?6^?<!9:2D
M9EV:24AJ(:2%9,&'0)+Y\S6B$R73&3A#K& B%R437ZLJI5/9TG@N?I:+5"?H
M*M 1:)"03Z>S#(B52R[,&6:YZNH&M^/VU3*+-HMZLPVA>2XEQ>IS:UAE@Y5/
M$V&X\#VUZ2OZT8Z@&LYG>#-:I.P $4)DVZ:<V%<Y9BHCO8YR#VF5/<9: I7L
M3]&/UTF:?)Y1(8"1L F\*N#1ZPNARC_#!R_ \?CS"VK+#/H#R_-Z3G\X\%UW
MZ WMT._[OMVW?)L-S>$+RIK#3+_R\,\O?/1I3<NTBA3_LFS'$M 9LXGQZ=/5
MGWY=>/GA-D(5)\$#9"WS1O=/&3=0RT!I6)#9*FH^1,E/J3"&-6IZ+C/[UB#@
MG'ON<.1[?-@/G)%MN[W LOM\ VK^SK("F!ZT^Z4T)_ZLN(^PN]N )DR6!^EP
M:EGI>]$R=%;ZJ# N#E_HO\/M68#->'OQZ>+SY7OC^O?W[Q<!,_8\J[.+O,PH
M=80?E,YR\%,P^?8#B^E$X26Y!J]:1,#-@$2D /EA0<]O"UGD03"1!671A"QR
M2[_^\PNA:,MY+;?MB*_?&'*-I5Y&+;-S8+FF/B98)U+CSR^L%]M90V-+4_D6
M^]%O68/'1U'< ]NVK5:G>I93;N*.WXCNR<^2:Y5Q'D- #,P*?HXR!]-)TKN,
MK463T;S34MYI;FEM">^L:2-]'&D/<4U-GO,B?[UE+;IUIO]Y6=V<^'O1$:>[
M,T<@ >#>RL(-IME>LWU[V%XYX@.$?GVH_WW_\!38+55VKV&]$JRNCB&P70]<
M!24/;,4>Z+_91%9H\M3]_F4W^UI?>(9.0+G"T;Y7*).B'S)Y8"VRHK/\_(:Q
MZ6ODMXLDP/]Y7S';17')L@R;4K'*J)[][ON>S=B #4>>Y;JNYW$V-%GHAJ9G
M^O[(;<B74I;4F"61^.QOI@G_#+@?35@,D?BY [L)6PB3@K_P!(X5?WX1_2A>
M)[/)>9 2X#@^^^(O@\[([:O,JEK07YY&P2VSZ)ZB'RVW6FX?)[<]SQR$MND$
MP[X;]DPV&##&^Y9K!FS(0V=5;JWMR:TUZKB]P2D([M8]D .Y&1>J$#;C/@?N
M\;!&-^'%KKV,_:JD[>O=>_7#WI6 HN+7DHB?>2'#KIKL6WT[#.Q>W^D[H6MS
MD'W/,BU_.#(9AU^.=FJS+:<SLELA^_NVS)K7#\#K?>[X82\<X"&].QHYGNV#
MSO?,GN.:?:\?[M3.#3J]D7,TK/X,HNGWDVF<SCD5(V'=,'"5G_& "M45&^G
M^BD3.7I'^C.V.+. 5WHE7]4J(]L+G('% Y>9;N@.F>EXK&\R!TRH.PS]W5K0
M3L\TVZ!5=-2KA6J+0M4/>]9P,'+=D>>ZYG#$>#CB;!0XECL8N"@NNPQ)3T6H
M3B4BK74PZB#TF!QS1;@Y^.-UZ3;=/LBL:]J>[[)!C]DCWPH&+/"X-;0<<[<F
MT^Z8]K -XJV#SA/D[8$YM'G 0L:LH6M[;!B&S'?[=C!R P_<PQT'F0/+.AK6
M?@9!YE7&IRS"EB$_G7"C8#]V;\*T_]MJ_U>RQ#=DA9K>& 8N6#[?LYQ!X/;Z
M?!0Z?H_[HV#4&PQM;ZLV,8Q^\.#\7SQ+D0Z$&-H&I:%C2"U#3Y(AQQFZ+ Q\
MVQ[T7'_ 1KTPX$'0"SVO-_*"WFZC1J<5)QFMBQGOZ4;8NSG^0E![_D+QX<[-
M\<]4HV^;*1XN5=^S+MFL=GZ/*H580U1AKZ:C0NZ:'NN9?M_VW.' 82.+^RRP
MG8%E]D?]W>9X![;;!L5RP'X.+4RG)$QV;S :]@>V[W#792,VXH$U\DW;<0(>
M]ON#W4;(3BM2/P=N<'G0/F\UDK:&V[#=W]("L2<.;[M;%!L\)/AMBAZ>--=]
M%Y2L45W<-'L0GSM#QV6N-_1'X<AU!R//Z8<F<X;>3OT I]^Q[%YKM5>;HG<M
MMEIL:V+++,OI62,OL /+!6=CQ(?,<=U1G_<]<SC<;4[>&70LIQ6="3L1VQV<
M,>L3L)\\ =NK%M.GER=.N]8=SSW5>'S 8P\9.>REHZ%%+D=['(KVN M7&5Y)
M6,RO8I84%TF S5)3A"%</-'G?<<;67;89UBWPMQA;^@%07\X'(T&EN\TU*)M
MT>FW.X-A*T[TV^3>:[$Z";&RG-#L]7U[-'+9  +JH3L(&+80!Z9G-^34M^B4
MVYW^L!59]1:ZWWNPQ%^1?\_3\!RO!B"#K.LZCZGV[8NXRC>Y^<19SHF:7\*_
MY9P"\/J!?# :]$SNF^[(=\/!8,@"-N@%/=]QN6O[#:G^K9I.=]B*9+^.E)X#
MK_?[GNEXW&2NY[ANOS_RX5^^Y_1LSS798-?VK-?3W84'BRQ_2]/@+HIC'5 ^
M:\]7L4$=$=[I>]YP9(76:.#Z \=CHZ ?<.[WW5YOM.,3(_!R;1T\:A$Z;A%B
MX8 /^LY@&(P"EYOF:#"P;*O?\X<>Z_GN;JLZ3T:$CC-0?(=W4M%56^S'GFH^
MM/>\37E6!/Q(#3#?V ]Q1KN8"O*<P+0Y8R9S!JXUL$>..PB'(_"HA_#_!KLU
MDH..HS%H-*/OA=%[9MCK68'C^*'O.MP>\B&SN6?Q86 QSV^X46:+IJS7L5P=
M(QXL1OR8%"RYB>A^17T$J=U=V42LF*)4%^]_R/L\&USAOC/BCFD/^MP*W;#?
M&X8^"X=!Z-HCTV=FTXU46W2%7;L-VD/'DEJX=B)<3N &MMWON1A5]AU[R*PA
M"_P0_C7T@]YNXTQGU H?M'51YL]W#VZG5U#W".JVIJ:VIL]IXJ_4&?NCWL@9
M.:'O![Z+*=_1:# <]9P>'[#!R&,[-L^M..S4;8):GK8E3VZ?.U;?QLMT>Z[5
MZWO#$"\4"(8]$\RRL]M.0;<=&'!'W2FH6WS6R5J;//;C:_%IU!:!P^U@&#+7
MZ^$U!KVA%3)_Y+F.Q>RA[31<8[!-5+E>9V"VPH77S7E:<H],<KV!97(O9-;
M"[ KSV/]$;-[X6#H0@#N[C8M;CF=P:B]KG/[(W)W7Q&Y0  X4$3NMB:""-(9
M'B*LV?;CO#SI$"O=1%W5<^^CH3L:\('I]1PW&/1'MCMP^- V+=-WS8&]4_>B
M9W6&3BO2[TUR<7@?0DOG,Y?.T'3"(40 X9!YKF>%0\<T>P-FA3UFNE[3W8/;
M/%DW.R.G%>U$/R^=^SUOUV=R;3F3:\F6Z+-;S2<M/H;<0WPC/KCC2!6<0QS
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
MA7A+GT)0O;*TF+),>"I5'H01D_2U-/H@>;*\)),WA@[6@9K=ML]*#+@ <"T
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
MK(HK^->]M )2C.V"KJ>'+FDH!# FNJ0?&,J-#,2B59J Q2#]MOSM@V3K[P/
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
M1_65%VR^/>C6VGN_FM28;E?Y65WCV'^IIK4=-UWR[MSQE]WY@VJ<%*5)S'W
M2__O)]*8^!9V=CP]P_IP<GY1XQF.F^%'7)J&T)'5X9RJ3C-1=3<Y&(?3*Q([
MN*2PQ!R/XZG]O!S%I]PQ9.BHUD"$TDE%,H9H;3A:;U=D!VUZ8N.NM37>0=VH
M@+\?X']D[#L4&M%S&M&"06(4<T$((:GD1)$UCCSY_L@ W0M%Z+'C$G=UV)2T
MH;ZD#?5D2TIZ6:&3'M?YK&Q-O!6[ZYKL?+PI#/W0K)8Z?>^-W^DQWO06@VV%
MOK9"\V*:,.T4I58" "H;2# ,K))4&!+=MJTN.:"B%PF=*]N8[ZW=5;A#X0XK
MN(.QQ%*N*<?$'$1 $QES!"0XQ9CV?-N^:C[0_6@RU3_NL#*!_,9W3,O*^W)M
M2=\DA]YUC<_^GIZ>;U?RU?N>KRY+OGK)5W]8OOKO!V]_:U=:G?Q^\/[H]^,W
M+X_>G_RO_]",JK]51__?_WE]^L]>IK /*OSL\6+:34VH$G.P):O]R2<C[V3.
M_&$W_N-D.O%_]CF5=3>2DC=_7@?I+;*J:D?ST]KP\][987@^'!?2Z#]IO,>I
M'8ZONA^4L^KO69TFM;>9U5_*6?7_K Z\GYWGOH27T-KP ]L@^78>=<UY4XBQ
M_\1X.IE>BOY>'M0F"QIWDB;ZH.5770../M--.<P[RZ/SR6P\+6>Y#V=Y:"^&
M/6?HY3#O>IB+H0KE-/?A-(M+;&^.\J><7OQSU06GRY'NPY$>_?=L..VU^V2M
M28=T#27O[97A.*03^+5Z;I:BSFOLP+K69( 7=F3''@?5_[;CF:V_5'1PF1^P
M_)QK;[;<FJ/[:"G+[57J\)9+3KH(5RO-.ROX==/,KHVZPL@\!N<0F03+I66@
M??I'2LJ=BBN&\Y*<D?2ORR20CAEE7]IDG'-"#CX/FW\M/?>/MA75=_I4DF=W
MG8.E!X;3 =>E/>PN@G!/LA#[ ^X67F>345)'F@Z%RUWBM68^"$NECP!:F$A%
M""P&HX50J[HYKP'7]ZX8X[U(1RR0+I#N,:29YY)%1C6A%H((-GIMO //D8-9
M-:GV+I"^2JK(Z0ZOQW.OW#KA#6P@=K113D%X0?CV$ X*#"JT'@(%SH.FQ@3)
M913@E2$KRHCN@O!%;LS"1;M6R6T&DJ@"[0+MIP#M6ZJ!OJ^02Q< (0EM8&!9
MT,"()])*$D%9)/?#]B*7ZCXJ^1V+A=B TMU4SW>PHK!PCL(YON8<-NG]T0<%
MVE$P7EGOG#=<ZF"!Q[BB?/!.>O]59M]-C6DVPT]Z49=<>$GA);O*2QZBA*"3
MT@1BHT6(B)K(:)Q3)"H9HUK1(8JLKR\4)P/*]L)WO_;PYEIBF%2O(XB9(T0Y
M\)@;5_JN0*K))%7%>G)>X6>L_;!I?]M=GESD4]QX)Y8R>W;M3**+!;Z<U</Q
MAW?I/I/YJ+KVE\?=L1[-SWLY9"B011Y,$-PQ0 \Z"J>UXUHJ%X0VM[8S>)3@
MH5$#0GIAQY2QS7L(G?^RHQG>AIR@!9-,L21S&7!'DN2U.AK*H@:=!/"&D7-'
MP1V'GS$\_Q^L)_DL=7KRWPIL"FP>#S; 3,(,\41[! G16N5)GH*N#("RXJ&P
MV48(K!_QKX*AIXHA+J,%1P+QS #W8)/^9CQ5S JT3#U8]*PQR%3D3\%.K["C
ME-&.10_!4;!!FZ"E!!&84@HT79$C^6/8>4@0IP"G *>WP!'6)"7-&NE1@9"H
M55",&I9]!4 9?;#BMO881H%3@5-_X<2UU\J&J!U E-I C HD,8('B[ B/6@C
M\QUVR9;9N4*D33GQNWU9^.S'58W-M![ZW-FSNY8IHTST?-KE0M\-"[R_I)CV
M8P>?;!W:9L>O)G7$X726/K-L<!+&F=4ZH&   1U0)$0Q)."T)KJ?40)!!F(_
M8I0%M4\<M:U*\8.@901$,G2-%SY/CZ.6Q^"IX8YQF92-%=/C2H"B(+8@]O$0
M*Y- ]4I':D!"8,8904FRNH%80Y1YL&]J_;&1@MZ"WH+>>3Y> &1188Q!@>+.
M$=DZS*+BQ&K.2E2FP+; MG>P%1%I$,)PH J$<"Z:(-"+X'BDP$M J&"V8+9G
MF%6.!N:\"H'[I!Q;'826W%FF"#JT*QIBE%A407)!<O^0#.BX4THZB@C6,!>#
MX-*"@VB8B;?GGQ<$/NU2ED$UQFF^.%Q\P$^:::E@V8,X>A>J2H]I?[7,-9+<
M#]$)("Q*X$K9)/63Y <)@GIEH9_Q* ULP%4O E(E[V0/\=+*WU5PL4YH)T)P
MFADP++C($DZ2A+76&.X?;.)NJ).<*4@I2-DN4DB0#CT2EH !W$=MJ)8,A1!!
M$!)\_R(PWW9QH@-&:(%.@<Z6A8R03MNDAT5N@#%M>8P1"5"OHP9W>T+CDP]_
M%+P\);QH,%(RQQ6Q",F><4GF,**(BTE= _K@ROL]CSL4L#PIL"0SGR9PL%PU
M[)73RGN5]33!K2%F1<.]XO O$"H06HYS)_LE.&4,10M:2J."AX &9':W^Q6=
MYS92<)+-DWZTH"PU)]\;P3T:CA.C;,XRR[QJ$&5S.*>I[#BDTX]8U]=+3JKI
MI+JP7]+[3L]RV[)$E=74?L92B[+O </;>F*VKOSL\W@UJ4_MYW]<$4BZT/[V
MA6TP9+F;A*[-MUCB791R C%ZZZ4&(8VF 5PB0(I@N6</=LMLQM\/>L!-+\KK
M2H?,P@%ZD#+P6VT32E?4RF;\NZ_Q/T\8N%8UFXQD9:T")@P!PL"@E=3$K-.P
M:.V#B]!+34M)\'D2:+U+#^N'P]7$H&V(G*('B,QJIQ&H-Y0I!/5PN;V-< KG
M.XG=(L$+3^BC!&=:>A]16_0TJ?))E]?@?0Z[TL!C>'#JSOZ'B8H8+Y#=*F2I
MU,89KX11%@@/3G,,UA/O.-#X\![1>QZI*G@M>-TJ7H,/" FHAE -6FOGO'6!
M)-0Z!5*L& Q1@F4%Q07%/3.>N;-$QN" &0$T&!--B$1JRD6@RMRN*1<#> L&
M\#[7W+2T^KPEUEQS<TFM%7[.WV.ILNE7PL"EN.QG++U01D]320["OV?--.M[
MS>GD!I_J:KGU'G.20#K[$ZP_#CUV@NX]^LF'<7N75N8M"34$$231T7!M !VS
M0D02DF4I B+R3<\;VFT=M*"LH.Q.*%.!&&*=B0 >J,MMAB-E%HC61'JQ"T-6
M<A5++W(G"N@*Z.X$.J%01N84H<:#9<*"(H:C)50*;76);!2H%:BM2;Y1A<9[
M:IB7P"S5D5'PP>2^F1 >7O^_YQ&)@K."LSOAC )CR5 C41D-'K61%K07@3)-
MK5$/3K=[DI&$@KZ"OCNA+UCCB=))A0P"@B96*2]#0- Q,F-O+WI[BI;8$RW8
M>36I,3VT\K.ZQK'_4DUK.VY&G;O>7M+L9;>LJ?U<\OGV/$SY>.& $BPO5'@W
M<7J3VO=FTC1SGG8X9VFGF:-U-SD8A],K_G8EDMM&DZ?V\Y(0C<)Z#YHJR30(
MHPTPXB(&18@D0CRX<GRO PX%QP7'/<&QDB(0+0GC3H/C2ALC%/%(&97*VX<G
MM979* 73!=/;E<W1!<Z(B#%$<%%IJX!:H=""T?!P-^[^1TP*F N8>P)FCI8I
MRSPJYB!!V9F0!+.1W 7&E"IS5 J2"Y)W LDR.)$$,$IA$#""R7.0TC>1! >@
M8K^C/M_ZKW4ONN$6@!> ]P3@1GD4T1,KI 8PT@4AHU"*NMR"U&VMLF0_@+G^
MB-.%#;DSUO/N=[]6[.)SGV)-B:*J4:+%C0>05N_#=AG4I Y87Z[@/TC[OZJ9
MC(;A@>NY)Y^Z?4%[%$A:10';%Y>%#OM!A]\7FXDM7<G)Y;Q<SK6(P-%3 YQ&
M+9RP06,,Q,8(I6=8 6 !X"8!*$E2-[4S-A(*S%/'45*7P:B( 7CXM,ZG$KHI
M8"Q@O',7@AO1:*-EJ&5TE(&,7)-D]5%PG@G+B-:/''1IVD-Y?EMKW0&!7AB/
M/P#)'>S(5Z#>#ZC?#^E.ZF"B". E \*4=<9K*B-1S 9_AP8B3SLB4Z1M@>!#
M(<@9=]0JK63P0*.P&HUCS"E*)=6LM.(JP"S ?!0U&)4P$6E(%FFN<G-6,(N.
M*R2&4HBW!SF+1KNS+;8V7=)CUA%E^<]\NM<V=NG7/W;W9W]_84=V['%0O43?
MRH.*TT':V/R,ZT^Z]F[=2C+%+SY::H:><F1ZR=7=3?3IYH\MAY:!"HT0J?')
M[C!!"XXF1&\$]ZB"6L%6'VT^CQEHQ09:]V+.>$D/*2#\@2[!>7@6UDV'EFN]
MNB4')TD 88&91-Q624'0@0G*JU53_K86XEK16K1 KT!O7Z '*@89),?T/Y#6
M:B#!^?2?MR18LRH!NA^MUH08,.A%A7]!8D'B&I#H8^#**L7 <B!26 G)P.=6
M1A:5D:O&3FVWFNA;22@&0A8(%@CV"H)WZ7-_$P:)HDJ TA$\!:>]"U9H$XEW
M!K45]U1$'Q)RNIL?CK,![<=\ZKYVO"\(WQ^$/P#@T2OGN(C,$07>@25H @7A
MJ?8&<)4#_=$#6M_*7=C-X19%Z!9(?@O)8&U(\*,A5] [M-8 1^FH!P:HR*I,
MY_55\W ],!KV 4W[/-(E.^QS)"CW@/.M5R^M*)%4%>O)>86?L?;#IOUM=WER
MD4]QXZ4^I4?EVIE$%YI9GC_5A6S:7QYWQWHT/^]KT^.BYV #MT9CXAM2&V/0
M1AI%8A8BKC">V65@G#U:+(>J@2"]4-M+>]<]A$[;FO4VY("5(49NHE !O [&
M\R"LX4HR)F%5['.MR-GMI*X"FR<+&\:89U1S1R,H20SCD@(X"9([-"N&U?P8
M;)Y,>5"!T%.%D-'.YIXMG+L 3J.E')W(,Y]8B-2QAT)H_QNI%>P\5>Q82L"(
MD"?'&* R.HP2#4G_Y\!SN:(Z]<>PL^=5,@4X3Q4XP2B:%+>0Y$R$Z)PS8 $-
M55%YBZN&P_R@WO84:UL*G)XJG&R,7'LA@^((0)@-RCG%&"JM4<+MWH,G!X.=
MJPO9E N_VY>%QWY<U=A,ZZ%/C'-^+1/&YMMUE<AA[R.'-P4%WE]23/NQ@T^V
M#FWCP%>3.N)P.DN?64ZPDT)(+9%3[@'1&&!*&J*C5R$$LR+VWX<8 :B!X;VH
ML2OQ_H+:AVL4/PA:9E$338*WR;*5UEEBE&3!)CR:H-6#_:Q['9XHB"V(W3IB
M%==6&FN\%GD<AG1(J/521C!<VFA*9*2@MZ"WK^B-EBL2A65.*W )KIII*CB
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
M^Y/S^/?*X1CC<%H,VCW7NF\),BQ(HXLTG-K/1YVCXT5''LOZMV661<*2WDT
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
M-RV)QY"$S73B_ZPF%RW5X6>L_; ITSKZID8^9G)8)I#CECZ:HSE]A&L#.SA
M3%R'4P :DHCE6J,1!!1Z*3;4G+2G?*=8:@5BZX>8ITXIDM!$B "/.?O) $_:
M; B$H=I6UB5PN0\8>SI6;JZS&#;-S(Y]6VOA)^?GB1!;D5],WETU %[/3S39
M .UYMMQC.452!IKDKN L$/ Z&D6,,L&J:%R,_&FE2!:[]ZF0O>?!1!N(BRI
M0H!AQ&H20"AIE*0K6N!NILPQC['J<9UCL8%;.=DEQ'XM%*^DI9\TI1[QJ:OH
M\ZSIX]CRF@4#.LRDL>QXDT*(Z+1G2@%5-JGF7"$A3O"@#2L%B,4 ?IKHNF,S
M@UO@92/%P)5P&BQ8Q9U";HD#!U$DNWA;QB\=D'Z(];XFT^ZS6?V/X?3L;#+*
M:8K=-.NJG6_]C=I0C.I^61=WY$#O<62G&$XGI_;STE&_FM0G9[;&%[;!D(R.
M"QPW-M]F>8@NM<&[)/=YS*.YC-:!6J:)0B>U@#6.J_X^=Z*]R/[?EVS^@K.^
MX<Q0D 99),G&!Q:=%0C:*"H""SZZ;<W6H+P7 _#V2] _2B'CVOT(;4K95>[N
M=AP(I>IH3ZN.[FP[O9G8\=<F$SK+!2CJI=60V)^+J))60J,-,4(T6U)*9"]T
MDE*16'A#X0U7[A0#1C,P28=2(&E(/XHHI)#!2FO4"MZP$46*T\(;>JEW];%+
MQ')OB%754:63U)-N<7-++?:K!<6L[N3@K++ @U)* EK0GH*1Z$W2F@CE:YQ6
M=DNA )']K<8N/:4*X-8%.)#&.N":".U!ZFAT5-Q0K4!KI&R-K:5N\9@.0.TX
MXK:;O%$BM7V)U/9D2TI$O]!)C].R'Z\=[E&,Z%NG,'[V9W;\ :O:3K'JOF]R
MW+BU:^PX=-_@?\^&Z46SU5YLF2>B6MWBQ>EHZ#@>S2GH?2*@XW%6M_+_'UT1
MS'MLIO703S'D7QR,P_4+2Y]<GK&JT&NJ603PP 5J@9$FQ2Q$;HB%%<FRF^U?
M)WJ16O,#FMB>^(,+\)\8\',?!,6,#$9*(,",XTP)9!P443R(;3?VU;TH*>L?
M\(MI5U3VWJOLA4X*G>QNQ>U:QD+_]!)]C;;!GZOAN/LN??-XYEW)7%RK,O8@
MM>M=>N@DO)Z3Q8)0TL^C6=8VEA6\3NF[5L0+BM(\WL1*D#[7^RO-7=3&$ 5R
MC0-1[]A@G X$[47,?E_LL8+4=8:B'@VH#(456CH?><*HE$8)(!1DM XU)=N:
MKFH&I!\#4GKDZ]UT"O%:%(C#FS2%0>4P/6N<4UTFL;IH:;0D#9:DP=ZQSV7W
M4O#1"D%D3D#.]<^<6>%IP,@T(6I5$X8UAO3- (3J Q/<R$B# O,"\Y[ '(A
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
MA@RZD&U:W\E"*82W3U.\.IDY33Y+S'6!M+V9/S3-I6D0DDV"2["H%,2E/Z<
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
M9B1BQ?H$J-&)<S&>!?4"F":F:2:?,#W5I.]UN)B-E]A%^EL4;X2+62/22JK
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
M9@G1.764(LF5T3G YF,D28')#CA <U$82E6NM:*YQ2)C&:4T=[G7N(YF>^>
M[_[ZSGC)/'&3 .H[N7GP ;1Y5%H-PL\ :'PW:\ GBPO_)PT@T')V#:#R$.2
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
MG#$I#/'.:(A0@;UOP,YV0++5'57WDO+;= 4IIT]"+HD$)UI*%+%CD4L3G8_
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
MPEXZ?KK'@*V]:A>(E1L\9)NE/5^\L87>^4>K7*!2.PD'$>.J ;-JH[PI*:A
M4E-O2P5. ;KI$I@LS2[.TE2.\VY5!5+?4B#>C$K<J81!VPS%JSMJEH !2HU6
MCM6:IE.%D 2IT7H)O&D*>@7<+KC7 GEI21;:Q9)U*\XRZL\]<M1^99/:8)],
MJ+9"(=C)F*X-'K+-T@X#1/ 40E6>A:449-;D(+-/Y5E8ESW_^^GGT^Q+7DK/
M=36V]0;0N0:KJ@Q[#5:5[&F)4EOC,&T@ 6W6KZ3A'M[/NT_R'LGX/\)<63G,
ME5TW5W8#K;"-+CE$OW#W;*&U5QUFMM!3J+E%_OJ_J_SUDMN0O :_E. N9V_5
M/;?5+/#R^\99,)-)4EV+:WP CLLK;(F%/U!"/M3XT7>\B]O0?W<=B4D']%^7
M"KRU\%+S^7!PD[]5D^Y.1J]L\)!MEG:(T2N@B<%+2SKL-M3!MX0,XI*R7 M#
M<38>3TN@HNYDX:_5KK?1?0C36DGM(@^,8F&(PX1H::@FG+$-8DL($*>780$P
M_MNT@K(O0\B_5CB+9Q-_YB]'$W"A4XC[-=3KV"6B^X[I8IS'4F%K*>:,(JJQ
M"TH$)#UVT1.R/@':$[IT'\*N@KY/:%6)0C5 ;9?*:/!L?8J 0'6E6 C43PVI
M607X2R_5NK!4;=W ],4R,OUM&*"% (Q*LF8S\WTQN&2#R0:+E$<U.J2;"[Z8
M[Z^K6[[+IY?W\X='RE)%B)=2, K2(DF SX)A@J)%T+,QKO-^N'[G;RT-J$/"
M/16.,:V8MC$8"]H2!P4JLW/HPY)4[.:M46<E]2J>!K;KTJIY-6,@Q1SEL+)5
M?'\_J&(%W+3@1).W='4"RTP8GJ&<,9,X%CQ1,/1= QI>FW$)(O7Y(H19L1^S
MO%6^GJS/UQ\?=O]66?PTQ>O!&#IM>6ICZ)PEZ*+1['HE;HX@.GJFA!'6,FZ8
MT8Y+CJ*("3[>[&*@!;4:!\NY938PGHH.$9.:!NL0!I_@0%/+:CS,$B8VC0<L
MR=+(R*-PZ)/C7LPODXWZOP:Z\2 @-=VCC]9>1>Y#8EF_65OL\-/ U)"MDMF$
M/H8\G8]<=Q$=T&U^&%22H\3.J::NU":ESZ 6PY9NW(]R@P%:[6Z)Q]CGO=TG
M&E(?V.@H46XJ5/84&5>X['UFH&%7-]W5K$:%S<HI.O\^;.ISV-0;4>V]JA\V
M==--71;47DOJ3OM0.'E,5^]NPHD/K9I <S=KA_==]CXT[3W/IKTZSFJQ5Z6Z
MV_,:!"=!$R-)5(S38+$.P6D6,&:<Q*YCHQT7:")^-O'['Y*#3XC0)Y3W A1A
MP#-[X$)V+G%_VH]._1%URJT!$$MS,]L'D,QC*I .PGJFO-1!2F,0PUA1)MD!
M)L,\5--L.1%"GV(U*)DC5#*#@_'@47K3226#C505LWQ>%D?<YW-H;J566*H0
M#7/.&BP=DRY$0E TO..D<!]38 [E=W!^0LC@=1RC0AB\CKXHFKOZ9781\B\7
M9O*H28%!($J#Q]%H!AZ))E3C(!V.!$=+>JJ('C&HZEGX)3M/_VR4XZF;)-(_
M0*RVK/5>$I6_5EV; Z;!#X%I4.NI<M.+]W7/[%_S:5&T&V<=ML)+S+U#+$BB
M-0]!:&)8&AP>-@")/;Z\C,(GN&-T=&^@$/;G! V2>5#)+!XDFAMF-;!!3&C$
M$:>2<:64QH()89'2%C/;:XG=>N0H%H.X#N+:NYQ#[5"UI5/:8$U4$?Y2-CU$
M8YQ@DB#AP<_OF-1POW0>2\Z!Z!,YV-1!2/L;K]]K;-?,D ;?F$A*''%,F6@I
MH0PQAJ3"E.KUC4S'&;ZK4]F+Z/TX*S1V'[TW#N'>X_?C2)4^X[.3G];HR*0U
MWA?%//BW\WPT.:]46E7%VNZ@6G!,NS]1@7]B+ W!>!8T,D$XJIQTB"@D3<>A
M:'_"AVV=$WG"^^&;/#W.\C!(\KDKCSWG+!J=\M"TA9)6ADBEDSHPS+25,IC
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
MQ9S7KLD4[J(X>#/=PTX0ZT4O\E'IGCTT/@_]E5OV5QY4%0^]L<]\[WJ$DW3
M(*\\G6G0/W]TT*3^3([N"4D&T)Z!3XX=-.8@:K0\WWZU*+=)>YC.<>$=S'E(
M![N7$">4)[9%-IW/4A5.\GD'C)EC MAH]O6LVM;?Y^FT[$.L3.B'FUTMF:$5
M^6'.C$%6:<D)4XYH%")SU&,C>4"NHQ[PWJP3V;(R4)]HQ/L0\ VN](\H!51(
MA!6ATEK,K*:6!AIQ#-8B[(7H %ZX-_^QO100W0OLA9X<1^T":>8@)O;,^\;
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
M^WOP7?1,SHNE%J-M:#PRYSD-""YZ#4XCYL(I837RAL:O#3&V.\5(W_WXZTO
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
M*1.EX-IJ-,%$T3@\X( 6A^A1Z(1*4[*$3QX92(*PDG.GD0)1T3!FO?:&@?5
MF-^I[IX9O<-%)8713XC1B>-><J*3^JO *F&=M33I4L8F'5B1IC;;YZ8$KVX+
M?C0X/3E'_0><VOXPZ:@X+_LH[OH3;^VP;O+IC!]NJH"2#+B^G*4()U'8]W=F
M"G$A/1$4#,URSTH;B":&4N,!=-KDNZ7Z4M$3JA,J07'G%3CN (X4C0V4)/4C
M>*#)"*4&!-(0\]1A29K*4%N<-IS0)3LQV:N@JZ#KD4[M)\&+*!T#E=X)B."0
M:DZ(#%X)M!J\:IJ$>FY:_N-<W>HHI42G"WDW+BA0FQ04Z&T*"AIKG=:=](1:
MIQ871V^R.&:;Q6FLMUIWDMA3S=$P9[<EX,QJA_K#7%]XUWC,M4*C6-W/TR?5
ME_2'VW+%NK3U#RU*9JTDT5)I$=,Z671:1X 8N/#I PT-?1S)(>T0TU/T8<>"
M7+C5YJ(X!I:&M#)Y<#?SPDGFE$&AC8M.R8:R>=*B-FAZDCR4\ZN*)UO$K=FH
MQI]L ]S&JK5U)\F#2#5*-EH>NLWR--:MK3M)'44MY<<[M=KOKG!<K\VF596[
M(_M&'1THVX;LC=K%NI/T85"Q45\)RK=9GD;]8MU)IM16EMK*]NLD/EV,$:O+
M])>+25;UDI@ZJG++0OUMJ/\_28,_1JJ7(MM2=];)>L=29%N8KA39%KXK1;:%
MZ_;'=><G\A[LLX7_"O\=>,LM+'AF+-BUW;>[#-AJ_BS3A\^?S;BO.\'FSK E
M=[;4WNX@"3#SV+OX 7_'86Y*^GTJ$BH$3CGW6@%8:1C5-$*,QB@#-P$-7-Z'
M_T !<-E31!QE#M"Y9PH6:.\)VL%( H9SPQ.R05)'75!< B7HHS#XQ!$;FR-5
MT^/,UBM(+4C="U)!B,"#1Q9U!!*( P(J$B6<#H'X]<-PSBD_>'7.&.U$'6 1
M-474=%/4!"<()TG3MU0D=9]80XC0VD3-01O7.+61=D#?9]"CO*@1!=L%VTNQ
MK4B"BS>04.: 4:<%4BF(-D%;XVE#"OL];+<&54*@0+5 ]1R@NJ8Z<*G*SX.R
M2=WG5#%@+)GCGFC)1;+348%M:O=Q;Q\^(Y7_<26!E!]G8?XQ]K_+89.]Q$;^
M/L[SVZ[&H]C?,C9:NA[M5TNI*?>^)MQB 73T2@GBC8P.+)>:2\.<0?01HC2-
M_06Z$&^ 'C34VW6UQ5 !Q5&!@O*DIU,4W$0#N2MUB$)(X9$IHBUI[ JP T\]
M]#CI1/>-PN/=YO$U.F\SDROKJ+%.\, H1**,1Q?S1$T60^1A?3BJ:+P=]78?
M5*TM8N I8N"0NYQ), ["::XQ@B;,:D0&"CTX3=-VUU77,Q4]!LM;JY<=L4#A
MJ5 (#@GDGH<4!&@3G5!(A=:$*N<):<JZVH6G-G$VU\NWD,+9A;.?K.4YH5%[
M0JUS8+RRWCAM'*?<QZ3.-72,.6._YL;NS.X@\^22L>?-5X:?JT'B[Y*-?=[-
M'6^Y8=:[_1^))1:#.$9$:242;P'0!A,T!B.M%J@-FL;>Q7MR9C[.@&0]T,>9
M17U\UF6!^C%#W1)%(!@M#=/ +<F-6S&@B#09M,C7UTFTCEQACC,=JB"W('>O
MR+7,<BE)U)H"*FX"<212JI5W.O)';-)G9)$<E=^YB)XB>AI$3R>D#FADE#.&
MUCBP6FM+K5!:>&9)D+$IVK4O9_<C9XGV!%T^5KR[^&X=V@74!=0W@\0CMYX
M!P 'SFD-1A*AE=&**="\/;?]8S'*U7(CH&"T8/0H,;H-1*7@2EO)F(0(EDH3
M )1%CPRD4:A+_.%HX@_;5F\<9\)SYN?*82)-'H^1.3R/_MY]7Y@SB(ON4Y'X
M+IS>C$>7/XWJ#NT)M-][^[^J:7P[$Q8GK[].QW8T#OVDYG][F^3!Y)?1,$NK
M\6@PJ.7=%,=)5"Q.1Y8\1LV#ISI 8%Y[RF@D&H66PD;:^0 $[5'6B5*Q4W$8
M%!@?(8P!@V%* 1?"@S5<"Z*(4\HP:<&*IJ2)G087:(_Q#B>"%U065.X!E<:
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
M=0%WPZB>T_+!=K&P4UBEN$))>90.THYA%$23[&I#DP[G0E-SL^+Y*K&3 AQ
MSZUTQ%/FP"6UBD81@O)&D.!8M.?FCRHX./$88J%=]\H5M]CW00@4P@#C! 10
M1ZDB@GL:T<:HUA<3GZ_GIJ#E[-""#KDS5$H9(TB1VX$J%,HF\$06X*FE]X7Y
M"_-W=9N?.S+2#^L&6/^6^"VS=W\XJS?_6\,W][ZHD?,I/>-ORCG+T =&(P<O
M@T/EM**>:&HYBX'.?9'IS 3,Z6//@A]6W!,I8010$P0+:+EFC -(+8D4UDIF
MFFZY[B1*?LB+44/-C:N_SF'WR/6Y.79!UOD!VG%-IXM;1\YT=#6793??S,AX
M(^ J/["3)#->?7C_YGT28:_&:/_],OWOYMGN'_!F-)JFK??>K1>Y)^W:Z8@M
M_$:ZEKQOGC'V?44>ONU5>IAG+C_N,QO3#5]4=O#%?ILL>:=$WHOQS;FSI7A1
MP=77BEQ]_<[3A&3/W6@<</QL_AWYL;JHQ?R+BN5#;YQYI/ZOT<]W\Z=%@ORP
M2."&=?UOM"&O:],K;X,&V @-8ALT),;>! YT%5.U4U?SZ0(KC!']M!K%:IH^
M^;I'Q22!(V U'=7?_32Z3,+RVY_^2S.J?IRDS\/):- /23<-U<<;%762+Y$/
M'>,%#B?]W['ZQV@RR?MM?96KN@?&I$I_GV1$A"H7\-A\P& P^C)Y\22X;\X
M8B,&D%LQ -V( =@V\G#S!9(;+9#::H'81@O$ZP6JM]$D90>#*QNR6EEW1LF?
M\T9\^WDF7GR<UL?_T(Y"7#W$Y'VAMRA*?]@^@#%_Q]MM*\O@]I6JC>Y"GGR;
M^<YR<Y?YFE6U=)G?<V>[ZHQ^]1=?YON9&PU"+17'B-5E^LO%I,)A2*+J9_2U
MB5UQVJNRR;%[DZ")!'LR#LZ:^O^3=)1CI'H[\=%FTN]6"VD[!MH:<MB)L/2O
MB9O'\U7>_]W?O'WSKLJ=T[J,GL)TI\5T<P]DX;NSX[O7M3U[,,;+1G!M0Q>N
M.RC7G9_(>[#/%OXK_'?@+;>PX)FQ8-=VW^XR8.<Z!FQKQO^"TVHPFDQ*AX"=
M%/T>8F[3?M]PS?R&Q%]OAWYTB3FLM) Z$KU@6G$CA2 @@W#62(_I6V^LT^$1
M@YRV2[2BRW--;B<^K$PZ47SYM)4N%_(<WT2E(CJ*Z%@4'<AUM-&XP+@"HHW3
MGK@016#1.@M/33'?6A)HMGS@2Y$$11(42; K29!S"HAA&J)4P"T8:X( Y;31
M0I'05,][XM,@MQ=FG:B:*;*LR+(SDV4A63[$"\X%,T 8<5JQH!CS,BBP;GUO
M@D,;1-"C*P90%N%1A$<1'KL2'L0HB5I$QF4R@ C73("AU-OT27@"3RS$:4$6
M$.C$5.DB"XHL.%99L)DH,(03SW()O@Q F7!>2J5E1 2JH_+G-XASA31;*<0H
M@:,489UHP;,M\]^M2=E'A.K$2RKWK:K<(>!,4B61]2Y^LE\7I)77&!4-1!IC
M@3MBJ:8L:LWJKK;8I+AT*PPDY?)IO7L4$J>BS!00'@"$.A@.4FCM&06NT8K@
M1-(=-&<V4&PJX]]I0$4)4C!5,'74F+*2H0YHB$L6N9#"&J4H$N&<1["Q20TO
MH8EC"$T4J7 T4J%3 @$)2H[4$D4!)#!#HXB*6>I\T,B:.DIVR[_/>T8N-X@/
MC+W685< =^R "]1J;A/&@G$ -.FXP@@3)8E4,6+UOGWBO*?E<KVVX*?@9T^>
MXT=Z9H3Q@F@FD[(*/&U3>9R00Z3(1>2J:?97\2,_V8]\O@W.U$8-:_16#6L:
MFZJM/0L.T]%';[1 9JL%:NRSM?8LL:KG5494/W[K8MLK.[FHWN0N5IUK=]78
MBF_=68QL1?O&%EMKSY(' 0=K;,ZV]BRZU0(UMMA:>Y8J[:Y*NZOV:R9+PZ/2
M\.C$>H!TK!%#%]%3F.ZTF*XT/#I7ONM:RX4N<EVKF6L22K.%DA)\Y"G!&Y8'
M,.0,N+5@@H=L#2,(85CD05L4DG0^]EAJBTH]01$>!RI,E Y=)"XX0X$P9AG3
MFH,PQ#%'9%.[A5);5&1!D05=E@4;B@(B1/#H6) >@(.1T2HDP*4@PNA'Z!$E
M)EQJBU99:'LQPW[&B.,QAJI?,WDUM5\KAT.,_2U;8)8DECWK+#>4G$FK3_;K
MZZ]7.)S@JQDU%],OP6N'(J@($C2Q.BH-0'W@PG).FOK-=<L$8CU:RB(*%$\
MB@$D)9I&81($(VA+/"4FQ&"$%)*MAV+[R&*=,"@*LLX366T!2_/H;(R@C&;
MI-72<!X!=4PJN[K)?BOJ^7KUG)GNRH-3#Y+<<%$?2YQDJP<Y>C=$DGACM!/\
M&6<_WPX7>&-![G&O.="DU_,0@1IF"1(7 RB7D]<)[;QNSWM"'6</V=U-."_8
M/ EL2FT=T9PY30@ <48F,U89%ABWU%NU_RJL]!0%:@5J78+:&M/ZT?L@%QXM
M%<)S !V(UD %,$?3'B@1BGO^\>YY?IS;\9Y\!7NN%6-THVH/ME6U1V-]VMJS
M]&'*81HGL:\]BV^U0(WU:6O/,JMJQ=HQ(-LO%)N?WA]6'R_L&"]&@X#CR?S4
MZO5_KOO3;UVK(6.-Q8YKSX*M>**Q;FW=6;EN[1"@V>I5YP]=ZKI*75>KB=F?
M+L:(U67ZR\7D&.N["O5+55^IZBN%+ATIL"I5?87I2E5?X;M2U5>X;G]<=WXB
M[\$^6_BO\-^!M]S"@F?&@EW;?;O+@*W/A#ETTMC<!^_P<W\X3&N2GF=@AWY+
M4IQ*Z+P4R+6<_?)Q.O+_GH>!9JRW$(97:!2U40@K&3@M')7:2N* 6N0@1%,8
MWG"RNR2TU0DQIL=TR8@IL"ZP7@UK"L)H):P-4H,BW$;NTC]D&)S6OC&[/L&Z
M-91RV8DBE8+2@M(.H]0J$I3$*"T8L$3K$(ARQLL0.:$A+-M\2^;;?,A.$3)%
MR!0ALUK(<(G4ZZ0"^*# >FX-%XPR30-W24=H*#@ANRTS6:T[D![CLL"ZP+K
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
MMWK4&&NM6E4U9]5<\_>;<U5?C5S] MR%R,C+ '!P< "OL3_ U3A "G +'Y\
M'^\6 0'![=NW".]0$-\A(KKSX!XY*04=-0,]'34M[</'',P/'SUCHJ5E$6!]
MQL7-Q\?'P"PH^IQ'A(.7C^>Z$YS;MV_?(;I#14Q,Q<-(R\CS?WU<?0.0W;K)
M0>")B_,(<(,,!Y<,YZH%P   X.#A_#X _SAP;N#>Q,,GN'6;D C[ .HNX 8.
M+NZ-F[AX>#=O8FN]L/6 FV1X]QBY)?#)5=\0/+*CX/&-3+O%)%GZ':C6M_V8
MU]C^_6W"^Y14#ZB?/&5F867C _,+/!<4DGHI+2,K)P]1U]#4@FKKZ)J\?6=J
M9FX!<W!T<G9Q=7/W\P\(#/H0C/@4%1T3&_<Y'IF>D9F5G9.;EU]67H&JK*JN
MJ6UJ;D&WMK5W=/8/# X-8T9&QV9FY^87%I>65U9W=O?V#PZ/CD].K_7" >#B
M_'7\K5YD6+UNW+R)>Y/@6B^<&R[7#Y#=Q&/DQK\GH4KPQH[\$8_O+0K)R+32
M[[>9>-6V@<;V?83W'_/-/-FY5NVW9O]GBKW_?Z39?RCVO_4: ]S!Q<$N'BX9
M0!QP=,J2_@?A_U^P)?,Q(4"7M='XM-\M;^T%:7K&7M1PN*"H-$!>FK=+6=>(
MV\L<9U#M!C$[@$)5^O^[HG;_1L(B9Q% #!'>K:PK,G] @?.$H@<L:N%24@00
M0KQP4'B!1Z'Z_[*HF /2(]1Z;Z@-@=;0E0^>YA:7!1T'\/F/R4P"/UY\B3]K
MBCLS$*]GW2UU8#)%M%YBE+<(I0J9CP)H"P4C4=(F/O"<HP "[5=>,[(@DK>6
M?=H9U^<0L*-X"\O"FY^A2!#EV1ML>Q_4P*!J9W,\#9\6YV&3V1:AT8;C 87]
MET69+F"(DR-#"PNV:]5_]#$]MK+Z]]=,)([_4G]]_77\=DH]R^7(JXO?4EBI
M:N=H2YQ+^A4^O&3\\P82C:WUFI&_*$N9^CWJ)##>)K>P$ #.)'D!9J=@IU!Q
M5\&1?F< @]],D,^-TY84V\Y?,*[ESRWT+6"DDY9QBN[!-N1V8+)&M%R.*%_+
M[]_J0BBH[< $"QEF&29G<%7SL<SY<UZJD+S:*>.L6&D..WU<?ZOMJ"6TVN[S
M0?TKBA([#VT_0V$@+AAH#>($Q,W-B/D83ZVA"?) QW\A-L@<0BC-2%.H =(1
M+/]G)3*, MD1IRFWR!J)YBNF!"\78H7#BOMU;.5B1CDFZGH5*-9NB7]0NP+
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
M2#A$/PX-U6G4Q_!3\JAO,//'K?Z: W9H4<J^8QTY_:I8IX?%)<'98@S!]A5
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
M&;V[1_*5*&JLUXV&@MKV1"I7G<RB<$4?2J401PX?BM36D+%_^#G<H#L;8O>
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
M?;<(5KTAI7"-MU3A*HQ6 _A=X?3?*4XB$;OSXLD6J+72@C!T0$!G_B"@^S0
M(1)2[5#UEW!>+KIS@>H]Y4LW5SE[3LR(!RX;)"UU\1= 0V.^D^?F6B55Q&?5
MOKFJEZWS8'A9O_%.M0JPVX>>#5'W=S5+/8VRE> /7A(S87H3KQ@C&G(O?/U+
ML?D=W^Z<\*+V_+*P=(4LGWT:!CL08+RPO6R0O\T9^ %YV+ZKA'!KQ)RZ9-[\
M3&AB]B:V]+M^8Z-8G-).\!C!7,L&MEC'&T5)J>_!,J8XC#00CGIY(2-B 9_T
M,.16A1H#UH=8'QVKLBN.<='[-,6L4B,9PJ27'Q$K\*YA,C6:J.U=L0CR[*7F
M,?1*!TT!WH/:C"@#2]V_"^*&Y085#<J+(/O@$FIZ,:<8UX># N0I.'WLL]@=
MHV_IN!H 1X63V>[\=.(2=3*,G<3A>++6R[K)MGL<BYK*D0TL:X9]A75+\I!>
MOUY/3<Q@K&)Y_).EI"Y(YJ@\8](S_!;(TUSI98N(6I3&$G"F<,>F6G."NE9+
M?FTC<?N&@.U[1F SQ+FJ\OFY<B_WYK<8O2<8(JAK$%'0;G=5S7[56_RVNZJ<
MU\@#UIGL<)M3G^"C)SH;3@PDH!3%F8MIBIX=__*P5#G2Q2P^;LK#CLV*&AAO
M_9-Z2!TA2W :G \4<CSFFO?,\3JWQ*L3[2@HH(FSBT-]C0"^B;^N2TWR309X
M_"YY6D83-3!L[/*=HE,N!'#0>DFCPZ>4RA>+GO/V32YP\B?6DR=X>B<!3$7[
M--Z<,6#,Z<'WH$18_$CD/%T3LM4[L0GJ.Q<M!\J!3^RX.$T/R6!NF=RC="*,
MW*A3@G^?1OW1K-W;&;;'<W06ZDR(VXJ[T+C1D$2%YAL[Y7T40;QU^ID9U/-5
MIH1R>6&IQ,+&N9KJ$L'9(<9=_/PIWB3IJ&V)QZ5EA4$)S=< $VR98*#"JP88
M?Y;(7]= ,0#'.@T\$A@)K.0[7(O'/6LY*TU;[J")5W4'U'@]&5KN.1^%N,.T
M/'=5)AG^_$B]Q+)^)X\$*%\^\IA0P2:67V&^_,N%ON 7P6:4@#T2>\A2$/\\
MU//% CTS+_X\VZQ1Z,1WHS"MH!>+9NYK:YXQBP81&0>/_A<^\V??"<C(AU1T
MXOD6A(9522B+7<Y;GB<VZ<?JC0>:Y]?ES/B[CFZJ:=C/S2(_L7FKLM+E:^#4
M[57S.PQF,][_X]\$ XB@/:5]&@XRW<HR;&SU](Y#YJD=97JUS]YO>+2Y&:E,
MTF HV_>HI+S,TD6)ZO&8M#.-I**SV^7UX_Z;[.E;L.DFI$N*H>)E7[G_X!UL
M;$\!_[-0?YRGY5\T)OVY;=Y"^0WG%.9_Q[FZ(&)T:Z8O<";%?)^FJ5D7 ?'B
M;4<[&AT)[WH<Q]/S:AR+9&@7A$8VVYW(E,[B@W7\.!<+2^CWSV)"@ P"#88
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
MT6%)/E(@[&NN:-9V+?:Q&G^6P?B1'VR<R=?M.BHO]$D8!S6Z#M32U,\2P.F
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
MYAD5?Z(7V.TY?@_#!, RJ!L!B#%1]"-PM[I&7J#9F8-N/0*\DOZ>P#=5Z4&
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
M2QBL!">ZX)7P7L83>T5[#ANIK[L&?9'TK4;ZGS,#B2:X/T&6<F7T&'=;O::
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
M'G5=Q-6%,(3T7O7;<ID;FVXI\(A.L[SZS$=&771G3G9,Y9F'D!.(/RQD/2G
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
M?0%9(E_;A06+M*Z]G7[*$G]GU+62Q]D!==VSMM?7' MQ6 -U0AC+Z"SYXS<
MJX3\Q!<_DF!;HR>M1FS2-6P7@,WX6IFNFF:M#HOT&US05O&_%0/\V-G)=")6
M;*.A?R%V+0PXC088Q86JE+<)+4D]BFOJU)W&>,WG-$]#8MI@RS4U<]/7.'3:
M"Z;IWRS1AS9EG7@+B<Y'",WIF-U^+#G?[<,\<,6#I0S-MUJJG#B%&Q\[C)OL
ME^4]^G4XP#?ZW.=@C_=28]YVPM=HG_VE,J^3XDY:IR@Z56%E2-E'1_D^-(MB
M4*?VS</5Q\KWB?*I^Y;#[F@?WNE@GGK19?T1ZNMD%LXAG?,THRORK.P41:>J
M,W:!/JM2"?\<#\C^4YEB9_S_AYZ_4<+38S7_WQWJUG)]?Y]N2R*DK^E SG!Y
M:OG"HWH+?_/0I)/0Y*-_!)8!01]JT6^DE[#-WMSK&$BREO8"LCQMGTG?D/+;
MMOM]K#U59O3GJ'LJUTMYB^NXP_GNK]@K+PKVRF8=E8LGTQYCKY+J@I-JO"9)
M:;^HZ,Q9-T*P-+UDM?T HWD]$71ZZD%7?<$&"XZ+ 747T.ZDRQ3DVT,C/ZOJ
MMPRO*:VQ4;'R/K'2?/A$VM^M^]O^PZ.T06W,<,-KV"@T<?A?#"WIFT1# S%2
MX>7TIR0"&S890R?P'G0)Z)*J=^2#C]Y"02RD*J]*K1NS6O.0S*LI4R8IV9EO
M+&RCNF<AN<0U&V,G&4=^E1N6\N ..F+8BSH7XC;KSX(LFFF<DV.!*8J-IFUB
M7GTZ<^XG7FYFJ592+<?FDLUMZ05XXE?G.$Q9T0?+MA] 12Q'?INQN/^?+=D7
M:([+-76[+Y!U9)9Z9@[VSESNI1K;QI4DUN&=BLHWGKTWV,Y@L!JBGW2M$S=B
MJ&]7^5UDEF7EO36GH :XYI%5K?B2I==$]%SJO$I2@67SM\RFSJ_9"_"P_.&5
M]_J8(#6<-]_+%.MC*< VJ;-^KBETICCO*Y;X=-^EWK<??,@+8X!(#@*/H$L6
MZ!:1LH'^D47*@^\ETPILI]@RM=UT15^4OC\)G6$+"E\NDE9<.>\/]!D?P1G0
MM:\Y./1,A-3:<K.81+HM.Z@Y$#S/F[;VT7ME?DZ;$N);Z6+?(TX4<V;/T'YZ
M(+6QSO"&3\;R7NP"<+K)_3M@OIJ6CS::Y54O(N3MK+%A[/QX!OV'+>K.&&QD
MU_%"]:5XSQEE>/6[4"8$LVHLOUO1=7L>9= J&V@UJJ/0G/,M@_ P:AW]&I@H
M44KE8Z4UKWS#RNAGUMWD\?*<,<0.[9/##6_IK%]4#>\I0W#?6K95-DI7P>\?
M787QJCN>NK_CLT[T_$OYP)OLX5LG*=A2I!06/;;*T9_.&E"50'X=04A7[IL&
MK/FDV!IC/U_9E\/=O[/+ZL-]C9ARS8V((MR!KC%)A^&"!%H^^E[BTOZII3:2
MO +5$@\CT'?).&=5<-0BAC._'V*9'/:*/R)&:"91*PG:K%GM;!=:G:O_(+-*
M'UO: *>MCC;0K96CQ:*NIW,XH:\?>ZX>6.?E5+"S=3_W8+X;:\KO)QO>8  B
M,.'W(T>%U<@@':9';J+S/W[4:?)[G),J?E[3>>E-5])'8.][-0['6V>=D+&Z
MSCDT)P OFD8-N<6N0\:3#E[>KK"[-'=FQ'FGT,^@*0<U;?'Y,DP'D.9LHPI.
M4G*'ZN@W.S_NOPE2@O"L;.D/2MVQE<+,=5BU-]HS@OQUXD+R/>FGXE7$N$4F
MKEZ 1Q0**M^CN"?_XSX^?QRT='<UE0?"3SZE-6S_@PDG;D34/*_#7(YWY_S
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
M0UDT5'7.04[@]-<.$2Q,!OO%1;R6]*](<;Q\3_(2NOD@]_K#+&,F<'V*TSG
M6S6/S(W&> 0)GG1':=)C2U?2>=UZZ0#LX+<*U9G.ISA@MXEA(?<N#9F?#HN
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
M6G3KB [C_E*.QV 3HR9*O)P+NHNE/XG?4Z&;V,-T+X;<8/='#BBO9V+RW\)
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
MY'*;=)PA">^>[\M;%DEF.W1)O4,#JO?NH4;D$/W3'/0!D&#>,LXJ^U__F?^
M6#M]6SM6$L/I\GV\+6;[A7=;0]0"&_%EO=*\D>5*8ZV59W<CFCJJ1#CFG/:*
MK)FH]@37D,PO]ZY,+927<QGDV=59TW^ZN:*YYH?*V4.\:N-[)$C#^1XE@K=^
M_+&H2)!41$W"-_9$^62E"N\)#+J"SRH9NQ0RINT3GY4JO\D#'6>AFN.C[9MY
MBX&\3>KVQ\^+J6&O1H\:?*HMY_K'ZW11I'CI/&B^ST9GH.:<GKH^L.Y^B,=E
M7G5IPNX ,&W1QZO3.>YZ2RW9;+/OY._\J^8Z&A#E;B$1T_<'34SE;0E+DKL%
M(6J^0WT);%\0HRA7?/K>X_0%&^F21P? D<LMJ[!*WRODBU>(2*;'_S=7^.K%
M73J^W+P\0?YH@!"$T'@:9*-'G67@KQ/F:E"14J2M4#JP</W*J0>-F#%?ML.;
M1;@0H=Q_H5*C0AZG)]AVTKX/>\?*O?U1]E$#H@S5+()A/.8%J*S^H?N:06*M
M:AP2' = D\TJW4[JCM&AE/\.&9N%'I<T:'[EAIP^)S:XU$$^]\D$5@79Q86H
MFK2MSCKAY4N&\^U(IBM]X@F[ M5%_W2G)N[V*_4=S:G?Y0C'"?2"9$P03<7T
M3P,BBBX&BL_N(F\ 0<SP X#O#:)>U"4:2U:UI^P)]3_'F?U!5!\"+Q\ 20]L
M<U#"> 'FFN(#P*7)$7>L-S)O!Y;BR[,\Q() :T U+'[O>#F$9D3M!>@0BW_Q
MANK(NX+MF"PT[Y=<!?.Y_-LZQ:%JX^/SD+S<W&@MI_?=5_Y86S,^00/0/(YW
MSM42#C7UOI)S2+GR9C77L[1;\D9T.EHR2HF*A7=#Z''- CS.P@O6Y1Z(8YU>
MR40DLQ+>8L[\TJK-,D5[8*&^LH3RW%ULH_:[RW6J151?IOS[*KASRN+,2!K^
M0_[7D!*G.Q>!\=S$8P$#?51:+,^I*1O=AEZ\16<!N#^3MY?9F<LTAIBLU3PL
M_^$MRN1$132F9M;_$PTEW]] 'KK+,)S"$SML5NHOWKH..U=XTQ53.1PB?ETO
MD?)(HW%$5UGV2D9&3CUH/F\BQF6HUE>*)@DWKI W G3"6F986O0)!N;3'<84
M.<=,05Z>"4ZAZJ,X/N,3=!9'J(L6Y04X/#. VM/&'AE!GF;^R*<S$HOSF*&B
MV1!>+<[_C2T3SUWU[#."-&)ZI*_1"=3=]+Y?0_/P847$I]OB]=7^?30E(GD?
MD#2_)#%9(.WW;9KO=63 M^04CQ_F'\\ ZD^;] TN9;X>:J^D&;<^\9K?4X/I
MM^A>?:1!?XU&YKQ;*N/09YZC(PNF7F/]TJ][+VEP#1F[\57];QF%G2*P.+:9
M!#%Z;W3M:2O@OTQ>TN#SP/?=[MW%K-Q'%-OF^]JV2:>KK\+J+Y+SP6\]PV+L
M<#>$+<-*TD1?EQ?.;#ITB#ENB*JZ@CM?Z4U5S)1'%OS6>55&0/S/)==3_-ZO
M[O,NQN<_.!6IB&1X]U@AOT3)^U,W[4_,^+NM/SXQ6E,#>4B"O3C'7%Z_8VBU
M_82]K%RZOS!9%!C.37ZP\VNRC:BT3O%?3P1A_BN%O(GF*J#*&))Q@09\TW/:
MQQI(X,71#*<DO:4;JQ5L8@]&RI1=356F'CY$,F5%.[AQLLR5J_T)S$\S50%L
M#,,9IXWO,QIA)-J/S\F^+'2Q@\<U%$%>Y6;P>@R_S/@M,GG"+,C9$/JSTGI-
M04Y40\;4C.( 2]CWNW%MP\CZY_:/,E5%J._<'S^+2<B?/#)SNR&G/*AM&!1)
M$>0A88A0XR7<3/1H1P$S(7H3OATF%[\]+S:7$.6?/HHN\NO!LE"M9)VX%:A^
M3WI/H 8>AU>=3]9[)-T/?TWYML6S5'3YX,NNZ]7Z]U'W&X#7&K"41VMX_J%R
MA[Y?-[+Z5,P@YT\/)'=;3<O@'XBED+%0Y[&&)J^T@<AP2Q"7RK<;5%,LF-G:
M20*MY%;IQ)Y.3]:D/AZNNSX]G[!K2D7T1NWY=Y#GBTNX;4D;,?O])O_2:73_
ME41WAD!'UEI02YW).J(XE+Z_N)$=A5B3^$B4G<FB/0 2HT%5U(!J_FF^,'^9
MKY*:+>J);W4*'1;+5H@8=$K-6Z_Q4 U.BZZ8$S(.Z^H6/^P("I9Q8[L[6,YB
M&RL;JZ>QNMT:U?)A;IQ(9KM*PM/SE]=5Z[%^A=\8,K42>6:;;6^N_%P1E-"E
M"@^H"=WX.CMX*O;U>((%L.Q4H#V%%<C6H+%?LDA\G>"A4.X,M6-3+?W<S \/
MN6PL-V-TR'\NQDPW^HBZ1<?@GO&I9U*(X5IM>,/(M2/\ \V9_J5)&<!FC#KG
MZ2^EL\'HK\X/6Y<O,,%G,Y5C&I3#USEBN38E#RW%G'8I^P;Z,;[:WB@=+KT=
MF#TWG49;DT?VL?=*>CM&="]\%:4I:+_896=M8=>T6@&$1DVC%HOZYD19Q\[Z
MAF\3HIKC02(01W."?L\UZ$;)CG!T&F>/;4OY_84[?J)//;NO9W WR'][( *9
M=V6WL=S6C.B!%Z+H\!+5'P-+!1^B[E?5LA^+--%@$Q.^,:3U[*-"N<OW/6_E
M#FY6U2((7&\X;=/,:*3#=%CE<K76HT"[6F:ZI0BQCV%Q2S=MSF$<ZNN2[-P_
MA<A,=ES:M?VRKM!;[M5/PM _FO790'%?X<;RW>IQ/KWK6OOY9 <0Q#NU?]O[
MS(=[P_N^V#9K3\>/8@_@7W,2]3@\)L @E\7HD+SQMI'T#HRSR+=</$_4ED,-
M78ZSOB%^;L;XOH<-<_FBR;BU>EI7.?#08C)F^%9M<DNY[6#CW2<N)0[[\(]<
MPYO>O3)8]NI%*N%H8$=8!VNVZ\:M6)'R@ K%@+>I[C?@TOV&19N/BW\1_>39
M 5@6N;5,#]MN&1C\\@\M*QG ]I(9)\$41&95) U[/=!*-H-N5="J915AL9E]
M!/'A[&^W<-'C_NNSPFC :%B6RIX-YV'%5HF;<1 YO>\\H8C%Y)SE]MQ "2>.
MC_?HG@[5X.U(?Q(&._69C/YJ3GHO)-KLN&1S85/>F4W;\]KKAKJJEX&=*ES
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
MF&V.3Y(7A"S8B!$D#=?Z?U"'*/5&;.T24XSA_73Z!-N(]+!+/ [8JD*1%GV
MD!#[8-NMH+&D(X[X(30+/A@LYR@6O=X"C,I.%%!QMAG1U?I"]8^-=OZ ]V$
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
MAW3',_ )40]"RTMV^^AL\;5V)XDHW3_J\F7G6A@%1]RSK]N$/P3QP%-PCD%
M(*N>V7$A8;-TI%%$*A\UT&AI[-I\+GU_<3.;7FY9W! -2,8< #,VM11?]L17
M+,[.<&<>/K9G+HVT0M3#VU3.X<2=N\HB0M3"!P^ Z1[U?(N2C-O=88ZCY8X9
MH-Y&=AM?U^!0.V.UX DRP(9]JEB.E'6;/!Z0'GWZ2,$U]1'9[V2>CP25+G(&
M"$YW;O9D%(XV,G1")>/T*.JZK@M.M]V^V/M&KRS;: M#?V!C\I#:O@RBP=HB
M%L: 7YF_4A ? /,5H7(">9%3<@!T98+0"HWNC5ONW9=!^6#GCBVLM&^BLE=1
M9M.=B;<. %X@B/7_!$8NO)+DBZ\1M:+P!-)6,NB'^2"XI)=_P"(I$!8UOFH_
M -9XDBDQ"#5X,RN(R!$=T#7J6LHYI&:8)^3AY/V=G=+V::73T_L9VPACM&39
M^2X8DI'[[FVW%OU4!K&[->>(1_@&Y.C]6!U(/@;97GUT,ATQ=[/.W&J"Y_+Q
M)CN.RY[T];$*&M3@T5INL+;I],B"CS7S6G+8)<1CVBU]G;M;GT:&+MB43UE"
MWW:^XL"%*+5>$(LEF"5L?K6BZ8%7%>4_.@T]3QNB!L<T2FRN)U?R# ?>J<)R
MXIH^MW.=>Z"KCT1)$80C'3Z*Y!G1MH0'ZK/=,-Y?^EJUT-&1^S$KM]D6+>V<
M?J4V:1W6["L/LRQ7.CV>' W\_*NMZR\\9!WG,?D[U_4?2S#_+4X"[LSM^5\A
M+Z".]2%F<KO)6QLH]T90%A5!69S:.7( Q,3)[TX.AZB.!,_O& ]0HG@+0)3A
MCR:O(7;0E%*:O%2@UYYI$6CM0:$I3VEVK75WV<9+V?(9)*QB&YWN673H@5A$
M@I3>359=TIDR=F4T#3[#3%R>V$!,63UJ>Z3!5_P7MJ-K3\J$MC;L?"<+Q%)
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
MKRW3('#37RCV\B&E@J4J9DMG("V$_O$?^9ZA#<H.$%<H.T!D'3X HE?LR9B
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
MD- =W6 /PA GJ_5*0AOA/U0E)2]60.PZFDTY7.X/2@)*2ICK!.W@3X$QN5C
M^T%"G>SNZUYDPF[(NR5:WOCO'],L=!OBO^[B!"3?0#G(YE+7Y,I<=.YRQ;K1
M[YJM[D )3C5+1I7ALO;#(G(\6Z8@44Q(@+(&I49+2H?([X^UJIL=N)C-1.M(
MNGAB5!JYV&H !W;R*,IC_3KN[/GS[=G>@A0FT$(]ZJYTRW>>/%#D+CS0XZG!
MONEJQ0\$H],-^/L7$8^MZOZT4CR)M+EH+<(W07;)\$!?;=?T=5C1;M!P=[_=
MK+K$4TSS5[/@EM?'(BC<33S- +WK22UNSK0P,OC#78[;'DV,$YKF+)QA<-2Y
M1R]@2SN$-6Y+.CUI?EU^/$;LT]JU)"<\S3'K/-"DDUSU-WJ2Y_MN)GR(!./0
M F0^H>%LO W(=<E4<BN_./3&2RA$3BQT?8LZ0)#%JI$P>YWY]G&/!<C"(6=O
MY^J&S'DWE-CXIIKJ[=&"9U'"(%,M5KJP];]#-Z1;_C=26HBTX-O5S:;P-(5-
M1\#&"43V4\9\QT[<TYO].X7??84#92MH^] *>/J6)#?+I?[3TIY)$WG%MB2G
M"4H8Q2@;9.,_E!R3W-M"T"._W(6N=JDA+[0W\+)EYU(LH]J< 8Z\7GD/+0R:
MR![F[YXL9FE3'K&WM'7.&JIY0.1N/206&%M^S;,0Y8[1!^X0 E_5!KVMU4A/
M:@CL?9\PVJ7*.+C0 .JYYLB=B_5^)_)!"*$+H*2O,5;+[@F#XHF\P:S;IRLG
M79>LF L=GK#U=\SEXQ'ZEIH+T,\^PSP^,XIK/*$:'1G@M'@/*LE+$\BW_;+[
MB5_6C:W(-WQ"W*=L+OI+>9'O^9C9']R&-/H7='3<]5?J<?7-9NS$BFJ^*8QK
MXXL[BRO82V+-&'74K##7KT8\E.^J@_\& Z4M=OQ?VV+_0?UUIYV_Y?%3?1)C
M11!N"VO4)5UDALL@;\F#)S%&!!O6/E8^76 )>::%T\WRNQYYAU46*/5_"WPY
M8$C[=?0]BX-W2T3&LP:L2E,28</VM +>I-YGALCN8*JDNHFY7#GXH']N5%H*
MRJ?E[SPVNQY&2N?!US#RNPQ5E^)&NKDB[280G?D6- ]3>HX=<NQK'N:\_WE6
M#<7S3D1?'J*64%_U,8V73SQ0;0]6--8^=R5_41CTDKBO6WN5?0]7+]EO6AM@
M2GT%VEV$$BCZ3K]_E8/LMLZTUDKUKUOV2I$#QI8!';Y7[LWD :YR7>X[3=E,
MFRM"?0G^J[7<QZT9XHAO?5PR5DV"TL^F:JQ+;K_]/&$53L ;C-P_]<Y-\VE@
M"KC 4DSZ)0E6OWOKH[E#["E;:K2RU<#?-0;MOCH<A!:*&NKFSR0@[>5I"JH
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
MPDV' J2-:L_S9E;C)<!?AD<77(PML[7X#<=*9*!@'A'[3#3=O0#WAVJ:E\.
M'TZR+A?-D9%8?8^L;-EK;ZMLDU  !/+IY-G[6Q )'GO0MRT,_:^<.UQV"$?2
MJEZSA(L,3V,V"BQ4*YV25ZP.[QTR>WCV( _T199L@7(MSSRWBO$:A-P19P'*
M9D1H];XP%A'9@R%Y/I C]T$>U="BP#,8#XT>^49>W(-!<)8G$,X_'R>M%BB$
M(O(RP.D5ZO3)3W7&IOH*S>W%S9TG*U:4)U^5Z<<$;+S_+&M8)C(RU8=6*CK3
M-*_$=B65U(=%Z%:Q#3F^::.12'WG^C'+?MK;]"-U!!T IU3+&+ L\;G$FSL_
M<AP*S$5%FMBR%RU$(O*R3>A[#$%YE**^K@9^_WQUW4TXJ3O$]E)Z-N"&.'7H
M9&.T;ED5(@NN9%/Q'CY#:)4JNGZXY:/WJ5B)&JT*,B;T/K<E.[*;8\VKLE_D
M=S"((??XA%M7P%_RED:%]0*%5/8,CUL%S+B4?5 RZ,-*=IV#U!8KT^E(Q/);
M""^9 1__3# NUFOU5AR K<W7COYQ<R\<#UGE1YP:L^\O-? BP[%UR-$#C9QW
MA&FRH^.ZUOL"5A?F]XJJ\_NN;*MR97<?5N#J![:$&=<H,4TG6_:?VG.W"@*Y
M_]S6)Z)<\-B*;_V#U)DZ<,GW$\2P$7?&2YITSXX#&;2_;<BLYH'DJJZMJEF1
M@+!U )17Y;V7\0GR1BB61S'4?W-:1V@LFSD(%3)D;12+.IWB"*4LNV(G^%/;
M@PX$^9N;1R]\?W50C2M>5':$*AG]A%TK%=TD(X8Q_;_M+6-1Y+D00QU(3@B
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
M,^8I08T74@&D-23*2:>*-H#B/2!*7HLLJQE'K)4+FJ[/*BX)!M-+1E$%_>1
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
M[+PDWS>K)Q+-%Y=^L&&_IM+%\TT2)T[H,9%KW:9E:0$$Z]+CO"7J1NG%'4[
M0H>56"F/9TD2^4^;A+_)]TAWX<6=L^7$,W[T="F]^J4_AKN'A#HS',\-M840
M'<"2%<]D*5CV&FIW@5#M2RILT%">J=,X!-2JK-XSJ,I.$KU=[-,5J)9U&U(\
M]CY^WA+6?<:\I/66L,B8[$Y6<7GRE-.MZ-;QY:8^_;(M)EH;7FP,'P&5[I_$
MB:[IIGX(H6UQ2]OLBH_G+*R;GW8V3\510'EQ#V%?+ZJ4 !OQ'UF=;7MJHWP+
M6(KRAXM+F8'V DQ1,:J0RDK^5]H%E[O2;5#)2Q\P)AO&V0\B>;6H,F:ATG]G
M@=KC*PE>R#<:)L_U66U7-I8(;;(Y3*@:S#4X9IOUHSK!:Q6E^"]=1OER\3:Q
M9UK\,$&J,,]^8L^T7E29>U#Q9XN$1!V1*>5A"<\:C\/$J,Y0@P.U5KDA>V[<
MY90+QOS\US45Q&LJ/X>>'[MT$R;\>C.>H#];\;]L#&/B ;&2FL<!N1"@H89Q
M(>K*445A"NEK>#10"4,JJ::%*9BRK5&C9-]VI5Y\X/]X8AS_^C]02P,$%
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
MHY%[\983!J%(3=.#R:B]O%E1Q9Y@7Z.1&G8G*"<"0KT ?:5"H8"G+J=J/SA
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
MR @K\CX&H6@!-A'ZQAEN.)_IR-+[/#X<2%0T'2]ZW'V?YI,7*^#F"13@;(6
M(.)=3DB?JQ00C@\/RFH;(D-4C^_S\KNHX,*"^8W>I6Q_&Y_Q1<H9VKO#VG=T
M>I6@3\GE5*!L)CX\'?=277%#: @K\AZP7KT- 1:-9(['R/DW!T6"JE'Q/GI.
MLE5.HOZ/4?$Y1 B^D!H]AN5?@L?BIKK&(,HN**&JP<FE\G+A#E<_6UX@L$B*
MZRBNLD)S8EQ52.F5.R&IIY%'9AVHI6)SB.%PKB[7"3GZ7I:RI*MSO^^[W47T
MA+\46P4TR(H*T,$O.BZT*#:! 7KX-?A>N[85.8_R)+]_0B!:S++?(I20HY(Y
M=KH^"$=->3'F,"HJ%BZ"!JJNB!YU[K[7P&U)L><%$,@+(MQ]0:(&[@"*\8=H
MU3V'UR_(1(^XX%CPHZ'^( 2)^?M>(U^")4!XI,3^/LF#?@%S=MB9E&Z/$"Y=
MR(!04T[9_EQVOM?+K*GQ:U;F8$$GQ NXV20%T>D: .X(8LQ'X-0H\@D73K8:
MQ\#=4:S.,%R;<WF@+>NN%R11>@&? ?YG<94FNPV"7?[_? YBD#PSPL6,^3!G
M+2T^X8+,5N,,FM.TJC,,L#8#&7WCH;L0&UI<#U*-XJ-'$J\I[ *H48MAL+4E
MW,RCE\_8:<..?ZKH3QOR'(@P#L_3@9U*HSG"(J=JPSAL2P E._7Y&BP^0;C(
M][]:PZHJ^X&PE;,_'01K-J4C,,NE:,6">[E@ .(2D4<0'KN[Z8PO](I \TNX
MF.$KH&CN%@-JJ:"VPN> -%"2K89LALL+"U:.HL+A0L*H&0S6B*(Z*+ L)S=M
M2_@9U[XI-U>O)-_=V7.4I/4#JV?9XFM&]LQ00BX<7T3Y6CB+#6'$G*_T&(4+
M*6O-,V@.TJN/0FWH-KH2U/#TEL#% _R,&[7 _V^..2..3/ -Y#@6%-IHL$%P
M'%@QQ:7E)*[,KG*'$NRT/47IV89LGSS <T"E!5CRRP2!N/B:DUM594:\MDOP
M!/.$/J&I,CA:JD(T;!I7,18H.VE2DZ'66!(*=LMI9%2$G66_KY-X38_);O*[
M*%D,0+20CP9L.7S&C4V5QK$(0$YU%&7>TL-TULI1#';RBO=(>F3LO8X&V5C
MPE5MV-Y#@QLUM;>T*FW1+D&,2,+V:\PE>0898!QP*](SC<^D'PL*Y,H.@@.3
M+<6%MQ0J;1E962H$%$S;^\@[H6UC64X)9:MV\D7\/(I\$6T5&&DA^ 1,DP>0
MY$%DWI[U)4D;&+SZA@\C"4-;)NXM=QD9TZIAY$\06*YG5Z5\"'V&?>.&E-_
MT,2]Z_C>C<Q*33#,RL)4 WIVMI Z@+/HFX-GF)+++NWMYOL$9-$MR,B+)Y\0
M+)]NTYAY4VMP^;I-!I0/PE-C7]\R;0T^0MJWMP;4X^85O+MH&Z]!_.T.P0)4
MSY]4CY]$FUL899R[G,HE]C<\%4H$# I]C55AH,39]Y6)9AP^PYGC?:Z;HO\Y
M9$=.HHR"&]?G$)+]F',[GX!A0_\N&]=&4$&5I@6[C+KF"\5%&V# GNOBT80L
MATS/AD)'3,V*(>1NND.X48A(['F5_77_XG3GJZ?Y4M#!H$P'GM4:\V&WO.^N
M=PUP_5%:G>-<+9=DCGX&]R_1$]>,&B5HCC>5$D&:6U]7.024>#KIR3DJ&I#
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
MFY RD ,W%Z"%.HW$/HJS*!9!N% <WPL!CG#,@P8E6C'\_)]_J8"#CR'IL9:
MO0 +H9Q664-#[\ C##RP#H)L $)XOF,"B1".;3YA7Q=%Z5FV.%MLL%9D#X/L
M;-;.+G-77:M,W6:*93PME-0&!#A,=06X'/:_%2OHCR4![(,?SHJF?&:GG<],
M4^X:%+.RR(LH6R39:@[3]!HB\M%6:RM58FH!226A'A(>YV:=C@4"NDXG$=NW
MVV91KTXRF];+\$3GI>L>J2F _=ZJ+,#4DVU8+NA>KJR2;Q]]L,Y?8)USED::
M8V^RK((SW$[%0^LU?D=7N][ONYL;VBF@WJVOB?=#G*&J]C4LU@ ]K*-,.W>=
M@Z[O5CK3 <*5=-_W,'(4FP<TV+C2US!]G?#>7B5X?K9:(;#" MQD!4JR/(EW
M>438(6D#2K;N]"F6/(G.,[RM[ -;2Q;#Y&L*H.MT@CD@)L'3\07,*AG**"7Y
M&Q5 .) 3 Y3:G$X.I&9MZ1:TVK+Y3DJF=*B\GQ5V2C[ (DJ;W\G!\A=8_#<H
M#D?.S3WU(0%OMNK4B8<SK_,T.IL'^SCHEL?1PG>B,F=J[F)&L(M7_T3HNGFU
M_53NNDMS*I_ZMJG%1M3).>IXS[#&O+&E_CK ;U4[W-09X_:+.6OY\A6KL?3.
M!;^:D^BK1[)"0"D-I8(WT[:-:N]S1I.=[HYJ<JI<-1BU5[B6#S%UJK1T;*E6
MY>GTT>-:)Z#]1"TE:#C"C]XRL2$8 [#(R?68IA-/Q>\>)2C3TVQM<OJ3P+QN
MN]@'K(($%&W>HE\&W-FBXL^6IKLG.GR'WQCD\3T)E+MJ9T^+(#5)::\9[6-_
M.]?Q+%OL'UB"Y"=^\ QOB];-DLBF8%87478$.XF.'U*#CF*A9D=5.O2,[S7"
MMO-![M=Y&F,,)+ TF R28!HUK-@NO.%AD$YT'!C?6XC2Z!K]<=':C1Z7LCF/
M;1LDV^F,*N&T::C[4&ZTI2/1^)YW5';/.$%6EK>@C>6PM"]M(,?W/9I8MF-
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
MW:5T0I?*_U&W*BRX_I/XU%G"GN\F!7$ S!2->XE;D5H$B##R"\@-S4.#4MH
M+GLN&D+*!F 5$[VCJU!0P3H<M $+X5F="3!".#J;@QS@MESS+BDS/AYN);<^
M>O)15?LTE*@C-6KO-G"+E^\NOO=KS\IB#5%2;!D3OYBH>[#0(1K+E*^DI.9\
MS^/IN_?VY6*.Z#(RKN7]S^L2:S+M+9W-V4S9A@YE#C<T=6\2\VYLUG0]W-K"
M25K?WB%,S5@2D!=)?$%V7]&6';XBHJ%Q*FP:3_.UM+M"-:W$]FU$A;!Y^>[.
M]T54D#PCMYA[VCPR9II9D7K_TIB$.F#3ZVFJ"@(I5^_96QK[DC2.B:B2YZ#(
MB>!)])BDN#KR>1<01.5T+,UO45KN0@?3%+Y$60QF64]"VT%*.2H:G0C_=>A
M^(\_#C)EBW^649HLM]A].XMCTL?SRR0G^W0E KU-Q;H[#2Y?PVY >1]CS&?X
M7&U+WF1](Q)0D34,>@;Y'*;I]<[E[324 8>ZJ09Q\#0^#8<%M-%4S<%,6Q0R
MR@T2P?=$*!;U/$K)3]S^JU"FUV>%9<8(O2'-80PVQ4I].]%B,2_!HJS\ /X,
MH59,"63-8J>',VZC.(9:LU[?F4W$DEZL([0B#WA=P+RH7_3JI_@QXJ&$0RZ/
MTP.E6G,Y1BA7""<)1BSYSJS0@T%E-7UF'V$)E@"HWR@6@:=4>3,J*_AP!G&G
MXCS_H%=(:;@,Y,&(83B3CI *KT5HU2P?#GM/102Z]F#NK^L447,*O1^Q:.)#
M[@C*CE_4*E3P_ (YFG$$H]Z11E! 8AW?N$&2\&C'+I9"./9A;+AR#ZB9AP7#
M&7!Q)F?@?>F@,!(Q\:;9-NK8.YP^#*DTI.O)Y/2DQ$#?/L"KY1+$)+\\_C"/
M"C 'V&6,DS2I]#ORT<37#.'J5UGR[^HHHKZ5>90#DJL(9=A\^1U U15SC[>T
MS[(B621I2:QR#^(25:=$5Z]Q6F*E=M'PFZ>RJ"PT6W8E[ZUIZ#MJEMG2)]BL
ML?62YJ4C3AO^G)O?>H5H<A;%0I[&7>OH@ /;J3D>VQ*J2I"B*(QOW]-0Y]W5
M/KM=O\W33K^G/$\([BY:V55OL"2K;]?ZD$_04"%Q:EF;S'NI9>TP/^KVJHO>
MX[2U774CVT(WC[N"W\XU5/E\RV; >@+8?4UV9C5Q38&DD[7:O\SG/0WKL%/)
MVM#'PIPHUB-,MY)[94R57-AMPKA(> QX<GN!VA/&[B3DXSJDZXR6P=G;7PX&
MGLP'A,/ I_AI8;\(#6$7OWIPLYF)DCS(R8GMEU+NX_H%E$&MC-GW+]4UE8.I
M?1M3R-G[5GHEW1P\E2A>1^2=%;A"T>88V]2? *GJ:9W$9PA$-]D2HDUKI][+
MC>-GD)6@RM-RA75"691>E'D!-P!55QU@MKK%ME[LKA;P]J=-V>QO,0]EXV54
MV2W@\H-=HY18EO>FJS(]'6'D])[&&6-S0_W6:(Y"0^NO1B=YO;Y=JEH]FCN)
M"$72C%,-=U,W"?K!VN'_(\=M[/XXA$.[*^IQ&#$<S5O,%D '2>+;P\+3Z!-
MQ99,]554[9]E\D3ZV1?0'0952.LF%9..&&T:;6 +5N(J?<?J8Z3'@("=*#I/
M\F]X^4%^B%:@^[JH"FG==F+2$>-'HPULX4=<I>_7.0\[BIHZB@^/3)CU#HN&
M,3OJX9 5Q\YFZUGS^@R%\A^K+[E)@KMG#M-D477/2FW&68R8Z#!H,HD".0$Q
M A54; /V8<60JNNADUFEDW6&-DZ8V[0R,BY6_)\92 S,A(!TFY_-E&U<ISOS
M;LW;VTCV;F#6KOMP"PLWRO5M[&QO6V+E.7B"J"##2W,7X_!P$2=_H$ZA_3:
M6B%/OK2T)\.!>HMQT<P\J,;<]Y92SWL_WYZ#+%YO(O2-[2@HD?/663WRTW$>
M=-K%NALAJ=SW+E!?0BH?;Q92(N>BK$ONU>E0 P831$*U.T.1L!HV3+KLPQN,
MC&#"<EK"  K'>;&&%)D[8XR5( [OHQ3D]9CY!13L8WL1#=V(8=/X\US4!@&H
MIIW8\FW>U88(FV=X0\.6DUM @9+OG0221<"I8Z*02\")3]++*!#.H0(136V*
MZ5/RP-2D#,K_8-WP5M=3,I,T[W(+F08WH S!@-S#\( "1>="$P:Z+H4B$$)P
M) XK])Z@3*="F;YN*07Z4)P-1K>'^@H+H7&H@D!#@;6/[=(J%3$YJ&E% _6=
M#2E=,]DSF^Y$' W5EK#K9@AJ]9&VK8XA:PK#G%*D=.U(/Q:=/Y=";FFHKF$+
M#CS&C? \%D,O X2II7OSJ7];LQP',V,+G89AYK;M,.0@_F$%G]_'NY<'=C:O
M_SB8O/[ACZ_W'?L>?J@U)#]XFLWE?0XR!&Z9A,>!F(24-.QJG)>$;[)JQ"<R
M1"G3Y1)0[%]*85"$; BY2LJ68;+R<?YX59)@0J8%69]H%I76IY!M)E!"V5AM
M'FX>>+^+XF29Q/-DP[0%[S.-KNU]#MDF$F64[=+G8].#U)MF+LZZ>Q!G';7(
M#R%;I2>PLAU(R?Z[Y$>^#'8+HOPXC[BT:KJ(TOBCT^K^648(3Q;I=@YR[.SE
ML^7A[>VO650ND@(LCJ'WQ3K*5N FJQ/4)MGJ#B59G#RE8)>^;K;<D<RR^IF"
M^S5P\(B-QC[1%_#2E!9F^)]QY<'F,R30YY9S.<X:O[J+6>#G[9$M(N5L>9UD
MV-))E-[!?#>4<6[,:13I[L (BW@:4NTA 0YJG.;@;"Q+:U]&*(/O,X";[!F+
M"-&V?QF)]6F_TFA^.@7$")2UCHQV7;ZW_ND;:8=GZ:K]Q3X>Y(3T'4<!X2E@
M1;DAK"-'5+/O$^4Y\4HRL*!),K NY:9,H\J9PJN*I(LG]0+[@%MY@5/ EW;#
M6,>9B@2^K[4-591UJ\T*+T,7U,>=-JNPM=F(UA%M*%SP=]SP6I;ZFXPS6L[7
M_;C:^>KU/-8.C*!,:1L(VY_!]JKR<1[7$()Y#L?]WH>!_Q-6GO&@7(_VO=@6
MFXZM?)Z>:ENK=Y#HSUZL4U(=@PG/1%5,YNMRV7T,L@@E\ Z!YP26.=E#))><
MP((=>JU(OK\.+R/WEI:!U^.@MI(<4S>BKZ7\_'37YX2 ?[;$HS]$=P#_[T(P
M-9PM_E7F!=&,<^'0#KM#1B)#=B$BRW(C29%G7I_OO9R#1/DU%'DNK&340\K2
M1*1Z94_#OS1I,*O>IZ8@OD$J$) Y5BK3TW-A.;W'K,V#0 /U6Z&5F52GTNH
M6EZ9[X,+ZRCJ7V0(!D?,],K.@"3.F&P=2A9\>4X($*WZ,RC6<#%;[L]=]N_<
M/<"S9X"B%2 /7F/1=I0PA:NM$$06.'9 9L31U]4)Y2$)NFBZUA4+F2A-*!J)
MX#U)LT;4R/X(NA7C,H6/G%KXR.XX<&]M3L2(A&I_M,^A.H63-;4F<'#@SZG6
MNQ.%A[G]S:/N7,?ZMK_CV?IV"M 0J6L=$)W*?*_(/B&8YUB79>^,GO&%WNAL
M?CD% /!5M6[^5E6^XS;V3SSO1BGRT','! **NH68%*< "KGJUL'!K-)WL,5!
M%II[/<E*+./!JSP'2XA X]'KJU<\R6&YDRQ"VTJ[+S CY^38@&FE7@$0R-E>
MBM.:6IZ.HYI. ?S',X4CC\N1Z/VK&3XZ(Q;ZZI6\(P3J]^29'8E+U>H$#*K3
M ;"L"1R!CU%M#9S_\!<R5W G>>:W_;*X.+6)7:2N@^"S@C&9_\T7#'JO7K/W
M"V1D].HJE^P4<*+8"-8APZ^W1L_?0T'/>90G\:Q8 W29Y"0PLL2SI"*DE,IR
M<"8I>XK@TVDNYXB4"%/#]&=?,/T=)*MU 1;UAOZ7DMAJMJQ$SV=ED1=11IZ*
MJM3HP'10V;K=-<N> DQ-FLLZ3#6%H3NP/P:&TTORD"A8],160ZJLM!BK_-(G
MC%;%)CL67OGB4,1Z.S1@3@0J$[W*A'X:&%-1_S@3] $OWDX7NG+5T)8@ID/%
MP<R>ZA11PVX"Y[C95TN1X^UH8KKBIXW5Z8J?X16_#W^9[OB9@G"ZXQ?,K3$^
M#*8[?N%9:[KC-]WQ"_$FUG3';[KC-]WQF^[X37?\ICM^TQV_Z8[?6%$TW?&;
M[OA-=_RF.WXG>L>/O*V-P)H,*<_@$'$V7?@[M0M_C=S".S.?90N&\>6IHW5*
M][-(JY4^A:,YLR9SF5M:31S?GMP4>;R'4@"1Q_Z6A7V,8@EGRX?HM>N%R2GW
M=U$%E*< &/6F<'!/55"U[XN+4W3 %!UP[.B *3A@1)NW4W# %!PP!0=,P0%3
M<, 4'# %!TS! 5-PP!0<, 4'^ ?I%!PP!0<$B*(I.& *#IB" Z;@@%,-#HCR
M]74*7Z9P@%,.!]A;67[VSR7M'_0S2$_A9$VC,5P>X3/J]NU<3>?U>Y!\S^?U
MO?>&A1D'%:EYKT2?8@9"O29Q_UXT)R.AMS-\+!@"40XNP>Z_-QGUR1+0'7>4
M: ]I+46TIP MG>9PD>)25+GO=,53:,@4&C*]#3V%ADRA(5-HB%&<P4BL-86&
M3*$A(1[@3Z$A4VC(%!HRA89,H2%3:,@4&C*%AHP515-HR!0:,H6&3*$AIQH:
M4OV6WV15_N<U3+$:^=6?95)LIV"1$PX6N2]@_*UE;GG4B+Q,/WQ$5.84CN*&
M-(_+@!*1$+Y]L[YL/:SQ"/; ZA.<!HHDBCN 3+]&WRO *?)H#X@ (H^FY [3
M"?YW<X(_)7<8T0[K=((_G>!/)_C3"?YT@C^=X$\G^-,)_G=P@K_?X=FMU4ER
M/I@1-X;A$RK1=G?JV+2GX2_J-(A5[U%2L6]0=:1B>BM"&OHR)YO&GX^I9G"H
MIET3$4+&U8.:;(:^=UX'6[KGT/FU-<L_-3.VT&,=9FYG/JR&P>?D["X#"_K
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
M??+'"?EW4HT6:=M92$"] =!6%!9*;0=!3>'/];!)[]HT2.DL1NWT_98)HNU
M,KR@ @&2)GH >U<?)12&=.% VX90: \;1?7GH \%Z%4>UN9K]"X6S]JH7'B;
MNY$W*HP9'&W[W,SC:-Q&]:T>PUF<=GDRO)AFC0!6YG1@@+,ULR/W9F=^1_=M
M/,?9P;$^\D@I$)K&NI&0O6@U,.MR:]G4#3!L\(K3'?R#%:)@J"_J43%Y);^_
ME'X#>0F!)A:=@<7%*%_@8AY2^%'XX'%8YY+-QHI^O&L,EH#&H_H!]:\QO>>S
M>FX?69D6EQE=-"T^->IEIHYOQLH%)KQ%]N?IA(ZB]M-V5T$P,<$&8!?/L:G@
M8F.*C;>_?(I-W.(@(EKW$EGW#IDN7,DU9+%(I&$[T$Q]@*/(3W44R?!=7.&=
MT?*:U*M1I)!8B?H7_.) 7_!38$%%<W5G:3@\55825.9K'0"Z6W"2^[. /=E2
M4?BOG%I%)'3EQ@HD_=>X@Z);LU=4)JF<'K"^:Y2W[7([A<27^1B0WTD:#'^D
M?:H=],&WCO)*^M&??!.I9> XGC08^5F &N7TP:L#E-%4@BFB@@JXEP4]7:=Z
MOB3 J,C0X?3W0Z)Y:<U$6QF8%=I.."?UMU( U_DWIZ?:8I@[W(S@HZ4LJ$\A
M+)8:TC-;TX;UL>PXIVA]6P:R,O>TFN0OJLNVC77:WR+HC7*7*]3[RW%)1I<^
MLZI(;@XT[M'F-9O>BY_C:GN?9'>CYYA03Y3N%AKJ,]]L0\L#QTS7EB?"E[5"
M$TR6&(_:MR'^L43;@0QZJ(7B.XQN\P+MJ1WOL60I('/;T)@$F)DVN5BSJ&4O
M*^I<W+*'UH(/9V]Q#.KL>0M%30O"B$CCQK@)3$,?;7QJ(A ]P$L2IEYJ<.(!
M:R5&"3!C*U0UINU$K%$[ PI<=+?8%=[F=QD][@06G,0ZZ@#$Z[@),F,O*P02
MH<,9P4)@)SK>YX>,G<(IC A!A@$)-/14E_<<B,YC=0!E1?[\T+*?MJ&K^?N\
MJ)*_BX\#T$IV%%1(+B:>U+8IW1YQ<9/KYM9TWM1<4VN/YLS89$(\$/'-+WUO
MY\;=PG-)JC1FD,:V6TA9G.#2^EF IJ,QG.@=9 \I[I U%-^@3WGV4.2[P_:U
M 4TZ(64#:=XFFOI6*6*R(@A;I8C=JF9B%TH!000-Y"4409=(  P+C3*$>BP:
MDG*;YN6AP!>WPU<_KG!*MY?1VF;P<LAE_,Q>NKW&3]5[TJ#?>!#;L=;B?JFU
MI519YM\JNZPT14E("QZ:U\F2C Y3DT>,'H@[WZ^36()D[@077*A89G@476RT
M,>B =#-LN.P*/BO&3,.1Q-A:T4CHWDLP4K7$2BR2.Q"'HG!N<[,#S#E!20N/
MF3%):'=62%*TT$M$:BY9.*%S:,7SSWA_,]ULJI)IXX=89FE8$%FURG:% R6)
MI7K11[S#19RB+_6'OKFH[+O<X*?FF",2'Q%";L\'SD_C(DNRN_(2%XR&=$XS
MVR9I,X@69U@SI>8'@BHMI ;,C?5=?$9N50PR,!2ULG1Q#Y54.IA<9PB1?$D'
MCAD(TQ]2TL3C:NBT-FUIYM(.-(\&V"32B(FCL?PW!57)O*9+K'J:[>0;>)FG
MR?99-G<$E):DD(FT979R]FT66#!7)FP466 G?I#A$*DYV"H"O1.W3Q9AT4[6
M]0J^*?I'S3-.444PH8\0B/4^+B>W,BIE)"1J9"Q3AUEU29BA Q.:]'H1^Q.]
M23*TR],T+@;4^#XL;HS[4<&(R<^NYD']"RC0/[ 7 N8_).FAFFPSTDA)<-])
M649^8]?Y"&/LQX0"0\VH^<>+H '?L0HB"'I!387V=U"08633'6J<5?Z<CYF0
M$=;V&]1(O ;  (MU,\0$4HY#"W%H">ZN^%ZE[%Y2<'.E]G0R)BPN&%76,VIJ
M4#4=:AT-G.@4RJKJ:F?3FB/KSFL-D3?CHGL\=TE'IMUPE Q0]WD6^!2FN/-U
MQ;CYA.5(35N<.YV>G'AP5IL(/2V"F*1.J8<\KQ=CP.)E/L@"*618N]@Y&?T2
MLVQ'R"Q=55B7Z[H@H,R;\^D5C6-C>BKM14RN)$ D-77"7EA[6R>$;9QN#RF;
MX/Y+@'35 DE'7TC_ M@L,Z-EM]K_VH@V2C'S*AF=>ZO /H(A.^R4Y!3C)BG+
M"<@#26G [ 5,5,YRTMST WA?2^/*A)? T49@"<6$5^9I D(6I\%_E:'$DF@N
M&T"$O\%F+G* P=<4.M.0:A,[[YS6"+RGN0!Z5\>=-S3P?-\NP[^8Z8ZY@'KG
M!E#O/.7HVUN\K2YN3Y^V]P0#^"JN\$5V$I?W]'_T'*O'.*5;EJ\P:6NRI7N:
MR8/C;#?^8"#)IW=W'MK*P(6'I>RVWR:KPV%GS5,&$T=>H]HP/0H"-Z9106RC
M^N\2D6"T)7ILCQ#[ _<6/$<EA^S(5X,C%PKM.QM%45??Q5_\31[Q&4N?U_$3
M_3K<KL>J>;?@<Q57!]*&YY&P,-Y:L3B*KPLM6HFGB]K@8CQGK57ZL+G<2_>*
M2MG*L$O2:*0,(0C:@>PDZ%G#C"C(+3(^#6H6VAH&S^P-?NVU9P6*';6E"'TY
MLW[*3NEEO3VVMD%QA5I"=A9YI0U=VMMZ/[TW;(+*AOA!,M377"R@]2>LG#K+
MS"^H<F3=H/XPLKY"C#1HC_UQG>VF+8V<IAY%MVZQL1LM5^+F0K?P(^(<Q!M&
MQYDP,P^4!HY,@Z;Q=P@U?G[*LQUFAY;=I+BYB?!G3*!*3X3/*EQ4<9()[A-Q
M8ML@=AK87B%R@ENS=MPT;=C2J&GF+WI_*),,ER7:4QD6+O%0*OQX:8YQPV@Y
M"UKFL1+LQC12&K8_U#C9;EJ@QZ/T)Z:</FT)>HG">YSAVZ2Z%%Y&X<R^0;PT
MM+]"S#1JD?W=U(Y:N#2 FOML#EB*O\;%CBXET'!*:\Z;6C3\$#H/^H9A=#;:
MS$.ID2O3<#KC>X3(Y57GVF:U;G4B&\W#T0=-,D5O&EO?;^K]]&^95]2<VX6.
MZ1WB=YC^_8)FYL(,"@MF[<**"@'/Z-%I2$R*PW/2@K23P^(M&LM,F=1/4E-K
MA%>)\[5'DYIV+ Z9*O,1>]KNV*KHYQN48;:!XK99DA@^? $A3H=.TV@&0,F,
MN"6Q:ARBE*T+-1B)1J_B8$M/S;0T1Z9WL'"B3.7 TVR9O$DA3)EI6^=BWDSC
MM!GWY0]LS6%+IYK3^K65%Q#[9L+>PMP9#&AV)M#DOFS,HNF^2:@QE7Q(;VY*
MR*"$?#BKL).9,(B+4Q,K1#[>J9=I+4DCEH8PH=GH%Q(FV!0OFY-ZR,ODA40H
M*<0,8Y"JR\VC#&_--(Z(6^,)^:M. LD:X +VQE,YO87G%S1'XY(B"V9:7' D
MJ/F2NG4'TL"+!S+N90$5E$15BLK4*59T$C9$KMP/ 11>S0.$U-@@*E0!;V)6
MPD3+;5T'0@@MLJ&GL=SSJD@U.RPAK^+4O*)3^;8'V*-O&[%&.<@N9(/*-^/T
MR YM.-[]]Z&L]M)7)^>9,!B^34VL4,3R3KT,WR2-6%K'"LU&[-,0&0\$E&$E
MJNI@\T*4MV9:B(I;XPGGJP[69 UP 7*CP1HS@ 867M!PS25)%@S77+ DX/1)
M1Y<%WB7L55],NO9^YORGV(CA#"AO9*69H+%;;[.@PF;8F! 2&(ZN_B'>/_S[
M![1E#\,/%PJ,S9C?D??XO F>L;TY4SRB%GF#_^I3H>(FN,&^^70HL[%!K9$7
ME&1=LV;AO*@+V@25;$4#:N%WD1WL9]>J\:RJQNIJ$UG*=OB9CX4TR<[<E][3
M(*!)(EDX9XA91O2LZ30PG.9.M2D=S)N' [392]S;/Z3Y,\9L^\\%V_TCO E9
M*]?&)KG<TF@CLVPU?FB<*"."4K?98%5_7@9R1[*^5W/##N 8)U,9<4AMURLK
M</&8;"5[H^@[V=MZTN"6TOHN2_Z.=Z2V3/(=N_7\/,GP687WDTEM-]9Y!MJR
M;HNW=MKCA.U6FP:*$18]UH>/O[UA[^D,[0Q?UD$WSV@HU[W/0U_TVXS5V);"
M+]0)8EY""5*6Z2(*;?8Q*@F(=AP)PZC-[Q!L\/V49X^XK/". ;B\I@O?_,;5
M3WGU7[CBO^;'O&@^HG)'<V*S=><FH=NB\S4BN[7FVI_7]='\Q<G!;H.B7W%R
M=T_O.(P?R4CECIU>361I8"E:?7J:=9\=MC0[9'F%GG'5R_B^%M(/;4U3B!,R
MS,@PUMIAG( L_P(O+H+9FYKWTO2PPE=[\8[J'?7.85_JDOCUJ8E?O1.V*D C
MWVU>H(&C/^*:-XI\NX'-UR((Y(M>=R< ?"00/7W"Q38I\<7M8/IFUH2'B5V3
M>AEF=XU$ FG)ZM,;!HU:'/S!OJ+3R<E#[%JU(G],2EJ$TB =T/OYUO%M&H!-
MH34CM$)<&$=->+N#C8=S O_26&G+I^MYA_5C[-)6OIQ9!A<!VDH[HE^R?EI
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
M) J+*GRAI5EU/F=IU6I_Y-O^--/BMM@K_Z?6H^M[7."8?AYLR  #;_: 0(J
M)<."D='Y@P-!V_RRP][LU_)V.*3&D2;[UD?(;=DYUP-S&\3(A*@I1&W]02L!
M=$+D57CS<N^?^S+C^"GAW\&?H:G/S5--=]&&][52 2]Q.S.6"*UI"G=Z/?2P
M=/]"%<.MV:5H@D4&53># P%O!$A\L>_ >'XNN;G>1$7/['-K=\Q#G*S$9=[?
M3!*/S>C8&\YE[48(@;%5V(-@FIZ+[DJ'>PN,F(*RX1-^JJZ_XO01_YQGU;T!
M90V,S1I"3XVM.D[@W?M;/).TQ-Y80>B +J?]&&PT, '?['I?!8$E%3]O=W[1
M+VYA:%%GNSWL#^R:C>%7,(@T:@. Z"(SX#"BB%TZ.*5K=B/F!A"%T6CP$,6#
MI^$&$@VV@,%#W]OP@"&V!0T2JI9X@?LJ\VMJ]_:1KIM-*S=H2(7C/Z@P;[K,
M%1?"FQS[>*CH83."B3WC[2I@4_K,"3#E+JAHG:]4DT/;,3/,P,Q'M=@HJ[:7
M+[V$G3%P4,+BC!$XP %':Q48>H"M"RP&_;7(2X,9@)&X/I8TXN[B!7.P4DP8
M^IK)^]Y$Q/ZDU/9^;RRXNV$LG70)F(GU3P)CV\"+%T;E!4[NLOJ$CNWS=1%G
M):$X(?U?XR0[)VU[CV^)S'7\Q)/+7+/EF8GF4LK!?;D8WQI[5_+1T%K4*#1G
MV6R?4=6KH)3(8\_G_,[!4+ZX<SD>PXV,*&WJ>UT@VQNYFONUB.&C'L2M"AKH
M(*J$WE"U[^D9'U23WB+X+:%:-C)=!=:^QJ+25I;'V8[],V65:WF9IPD1P$_5
M>]*4W\ Y#&A'F]&T=IR%!8UG^YLK%[9D7M2 V):$D#2$*:W%  0%#@,L0*.(
MQB0LIH#:Y9,A*Z118"N<T4.38LG0+ML-"5.BV@CZTOR76D/,G.\9G&#(9)R3
MUV*3IWS=U@X7V><XQ1>WET7^@(OJF:.L3JSY->5B"T.%S+"#D:'&E8KM2M6(
M/D%TF>$>HUU2/N0E/8;F%MTF3W1=D\TY^*6IMI=SLQX9<TRF,:20VJI#$%E+
M)SHG<_%#DL%@2$5Q](%A*&D/U[I(4I80_AHWB2%A1R^T-EX'LB3A>RFT/ ;?
M\IS-]EQDIT]5DMT=DO*>WDI$KQN^X5?GP/*#<*R1MT II0=' 1KB4\<TO8V:
M<81>9%Q]ESQB=G8=H5IWSR/:$5'_S()A(I_9;5.J*55YS@'\K %"HP"O'5*#
M72X&X=$WCD)%Q+<+P^7GYX+<6#M"%^QM,03?34J/L20%XX=7#$')D;KV(>CI
M8-V_DI!2Q"D9HQ[O]DF6T+T$]%2N9G,!7X3 I-L21">]E'-J^S;7[6&NE&P#
M6(@:(5;#QR,QS_P"]GL^JW,X:JD51\2"^ B05<)S1XUT8 RS=/8HR,N*; ,?
M/0JW,V+>6!BUP OCG$<SF, )J3N0%*1N0$[%H:0K432_*^*'^V1[0G_LC+4N
MSZZ2\C<)/8'R'36U\HMIJ?%@EY(P9VHZ0FQ$O1@:R2$J& P+H6C(9W88SSZ-
MZIAY(#]>6)?GNZ])2J,"O^5.O2? 7+'EH8'B4D*"75EEIJE7)47-C$6M/,N;
MD_,5/7/4'#+YTL[D6 NV,:*OH>>P>'RV?XB38C^]7-%$1<O=H8HSUO9.K&_+
M,7 ZCZZ<F:C_-YVQN7N1M!7@!$18<3]"J3KXY4 DY;VM!$][BY@&#FU@\XC+
M(OR+CZ@7?]W E,UV.T*FKW7/IGF2["#) -9HY*+R,@C4XZHI##RK,*L/F"+H
MA5B7E!^2<IOF)7V)3OS^ZRQ=_2A#I.MNH#'UMM)80^IXYG!#8B\ZXZN5#<I(
MD@CE?=5Y((*-.]1]"QYZ3,T 1Q\R_UZ(3E_0NRSRVV1"X^F3EJ3#)TLIV-LR
M'ASD59PJ!P<3VTH.<=+-JY\/[!//9!!T1:[]#3D@]T(CF/*Z=OO37C4]M6O0
MF4<OMS=EU2RH.RWLQQ@;--IYH1^]3XT;=.J[E]NILMT0H$[UM,/A+-OF>_RY
MBBM,AS[GU$F29X+C@@&2S?=62BY$KL*VS5).[T8%:9UV5 N@3@*U(D$<Y0OI
MZ=RX2\:D4"@-2:*U[8\SU_&3=M $D!QQ1B)IA3-"V_8YHW*CYXQ<N^5,%3_A
M<*ZF@G3PA"K:GA!11:@TI8K"MC^JT-U]'\GO=9)G59(=DNSNX@'7RZ[-J]E=
MXW$YNC*9G>W[B?S^1)/T!6G:'1EW80)X,=6<>AI1U9$G*U1WTC;K SGW;=7'
M&W?>ZY?:FN,=DD'L"B%@N:7)). YQZ,H8#IQ.@VX#K];V+' VB3 "NWT& B.
M_H@$JZ+Q-88"3XN1DL&7\&90D*QZ?L#2K9]*ZRO,$8!O]-3KJ^8)@KBH$];K
M^KD"W26<2C7 ?('O"S8[WA\?JON\2*IGZ02;3(B?)^"$;$T1C,PZF1T0>0!-
M#$P56W[0\\"ZIP%-H4G[4C0E(/WE);,!(WGA1(# X@N9 VC.BUD^Q.<,S1_!
M=X;6+\H;U_;)N* 5E@OJH?'N9*>F5'Z3LG=KF_KY91;./ R7U<4"0"RN>ML?
M?5E1.VI9(%/SLG<F(*+RR7E[[T6HC#N>GC=Y]T&K/IJ@#X&AFJY53\L#WE]0
M:6DFY@-X1X&KE)4+6%(I\8#.\L+5Q*[#09SQ@I58,SJY^/3YXOSLP_'UZ0?T
M^9K\Y^?33]>?T<5'='%Y>G5\?48$ EO%DO>R?  '7;V:*"@&;<I5*XL0LGON
MC<;13"0=$2B11)NGR8Y=;-0)L7-N^DS\RJ"DG,V;BR6OLVC#X9AB DTN)AW_
M6YTVFQIV.P=@.%DF497, P0T1:;H5^5< &QB;*JAG@\(9CJL.>W@/<[P;5()
MAQC/_^^A2,I=PDZ+U6VS66J/)]E\>[;8.+<%UM_)M-4B$,D7^0A\I]!BC(H"
MA@V82"++7-/"$+2LG2&0RO*RMX76.&?4T2C!M@?^O&EL?;]!O;E!2;I!-\]H
M:/(/*L+!%3H7?=?2X[;#R@%8DG<59< )&7[<K]K3C+# IT]T4W\>)%T-2&B<
MY0!\<9F1S&<G8'LMI8YF8N7HM8+%+ X#T;+\M2V%<6N'YVI\S$3*.W4)\1HP
M(WG[:QEFO+X5!JH1E@_)EP_"?0R[G;Y!8^S>TAB 6\3(]P]YUDXV)Y-(_Q(+
M>DLEO-7Q\\(J/92W?%ACXWV2L69=XBQ.JP27]5$);"_K\79;'/!.'BI,M*=A
M J9M+T1 _#D*#P:N@:$!;#%J_D%/1JLW0M-SJ1Y:+53@E"U543 3QA85FXXF
M4:.]DB>4S0&&<!,'"E,,2(,$Q) D0,#;X#4XJ(\PU8GQ=+=]/*G,L+N)=//S
M1Y6J(>Z_ 9PD"OG=):11G!*JMNH0*O:GAV?<K:G6'8S$-L'>BVD+0KJ1_$P,
M^9[_Q.5EG$@+J?%3/G*V3VVQH+;GI- 9F08A?J Q7@=\(!\' FFN>T1(GOZF
M$OS6@D+8#FUX FN!XQ)_P/5_S[++ M-N8&V;8A<@W$-9*;P<V0KS;B;R]0XU
M\-<9B)I/PGH#%=+G^9R>F=!%H<>Q1^O!.;QL%A$ 5\N051<4["%ZTXI]3V"&
M6L1=OTZHR4L+:UCS5V9P#6MFF[*[<_KO\R2^2=)D<A>VL9XTGDOUK'-/XLG%
ML,_(LQDI5;8&]-P-Z9FW.BAE3]-6*S2JZD"D9"V@?W7\E9A04UGI=TT4.TPF
M&J_6("Q/,9T28EKH_%O#,#@)V09Q,*GI>+O-#UE%!CO/\4W*4P8L+TU%$WGK
MY.4\K)!ZQ![-^"JR$;4?DN$V^S0T&LHZ7TD_1?_H6,>IJMDF]+,&VARF"(FW
MQ5"3IX0.@I>O&X+@R+\4@R%%>KJ4U::A>IWKHKK'19^G^F>01###G"I/&)ES
M06R#!JR39<P;9!P93%UTZ]=I_X M8>=4;?AI@)%C#F!U@64F: !AQ\"R-BH9
MMS( ?KG-JS,:XYI<RJS,2'?.D8Z9&P[C_J ?$%-A\R^8HN$L>\09<02I" 2R
MTG0_DK4>:P;65UEOFOHS"Q6\?C3X(#0>BWI925))9^@(.%!3LVMBWS6<'.8E
M@:=%2))GE%>,,'",GPNQ8*+S.(?4%ZGI%Y442O(5):&2_8EX@9M5(KC"L>$\
MO,Q05-=JVT-1T*-H:?66YMG=6S(RW =Q-[(A4M13[II^U$ZW"_0U<^U2CZN!
MU.52D<*E'7PJ%HFX,<;Q-X)5^-J0-;"&DUC:MIW$#TD5I_+7U P5]5L6)HKN
M5GLY5Y;W8)IYG;G:*S(6G=P32Z2F&>U2J%-,G7?ZP>9?@N.Q#D"PI5Y%UX*7
M>CD;P+5>H><P6'V%MSAYI L3^BI1("OE[DC6.ET'UE<I!:?^S+C)Z_>KND7W
M)#36B7I;231)I^BX-5!3TVEBWS6L'!9O D^+$"4OU0:"KPUAX&IL+L2"J;T^
M5_GVM_L\W>&B//W]D%3/5WF:?LR+KW$A>&=ECK8TDFNTK9-0Z<]M/09Q;493
MO449;X>:_XAJ7?2%:J-&W?_[9+-PIF0XN/-UE%<:4@<!0!N\105Z F^<GN3[
M?9Y]OH\)N8ZKJDAN#A4-6M<Y^^P]^1J[R_B9'==;%+3P9P<<BP*%%8/#V+'0
MH(UPLJ@);G9QV&B2-O(L=Q(=[W9_01^2]% ECQCAVUM,!CGY+<H/55F1<2(=
M->(Z%L64#F3P6*(=IA.6289W](#"ZAZCBE+I4#RCDG()[7%UG^_0&Q+62M8N
M_\<3V4(^'\VL84\0X!;9GL0\"RT-@JQVJW0KS7'/U+;>KPVAVA*J3:&A+=KM
M'9]/.SXSR;?, VI<H*&//_BIA5OX!/4V?"&9XBXA;:QGL2$7!X$UNE(#H+$X
M/&E]."@6H#[5,09F)>H%F[G@#<JP]_,FX6#(9_<6SUZM\IB>0%_K(-!B!@3[
MLP"_HQ'^FC6R7A9]">CH%)>0E&84%Y@,)"=\PM7ITS8]T '%7_-\]S5)4TU2
M4*E(LH)8Q3(I14Z<YP6%4Q-F2LV\B,R@1(2"A[H>4_-0I*TBHMS;2D!TEAY4
M#FV@4)0@-HA(HS>=/&H5O$\IN,4F,$G8 J>_-,&.6&R.:)UF!-'3/OB/GRZG
MU]">DW5FD0<-<R8:4?LAPO6GWHD@[*0<],M.T#T4Y( \M6&_QVW&3I%MP\X^
M&O3VZ<OM;7DP,^ANSR'JC!WZ]8'\KZR2[0?,SN*=+K% A+D )A.VA&ZQ>;L+
MJP!/$.0K#/0\2)A0&#30]+. %?K>$'-$K">BC,J#3P+1HQ1)^2%A#/>4HTCW
MU!(G&GLN2# V#4']4*.'>0BG;8J[1H!JP>\IAG$C*,+MR(8?H-9O^#SW4RG2
M/<]:R0[ "LG%8);:M@MLG1LUR-7:P]<< [H-0]^_N7%'\(R0*HW9H;$="%/D
M2SUZ43E7;"[NR(T[F+W3.C/DS&0=)Y@W-P'=JZ8*:+E&KJ4AB^T%&K4#B\-'
MO:,E$#KJ,?0<ZAJ,761)QZ!VH.5M=-HT2W<UB%J,C\#VKP81&W87>>=<#:)0
M#3#B@JYUT/_L$CHH;W50676(%/O1==;-("K=/JJ&?#&('03I(NI,"/F.I*(Y
MBNDC/F+:F9WHC1E'1OW]M1/C()@/9B9"BX#220GQSRB!Z60Z@M>VW*OVH]C
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
M=Z_+W_3*&$%G?'AKC4XTU^,/7D][$:_*]WH@[*?:;1^+S2;!&_J63A.8K>4
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
M<*KJ$J[CK674 @PW!"JZ\\5J51S.7N;-&)QK&?S[A#R%*6W@LPGH YVV2=#
M@(F%D)#3MQA*>?PS(!^KTU!FP8Q.-[V 1JV;VZ!&Q<C!@6A#UA8QCB:I^?WA
MD5]XQY4_P1'FA8,DVC_QMH(Q?O3C'<*Q-8IY5!0,XAXMKB/"%^S$C2E3*.2>
M#7=F*T(_!IH'K<;LX3S1 1FUB ^4LR 9UZR3UK1T[.14JTLVX_FG+8[#];E!
M2"/>SMI[D<9KB!9MM16-I8G.EOWU-;;)<1IU34*68<*.U4DVP&0-*C7L-K!6
MN39)6/624%>KDK#3O/R='Q3U9DM*.F1$]R.W<=]NV\2XF-+4>!9.-.+' BP#
M31Y-@JYPK#TA"+JT,>R%A9<,DP2_?5:[V5*&W6DM\9\XW&RSJC;DUP/+E;A9
M?PRC _TUKV)\<\C2C$[*8;QI 6Y@[^)#&?>V5 M#?N %/X;Q5VG6$(KSXJD_
MM;J'HHB #&U3:PT)U95ZD SC0]HH!I"1+(B ,=T7#QA$LD3U<0114)02+NID
MLU5%\2?^UR%\"B*6()XK "*U(?W!]4(2.!A7,>RW=@<P!=OD'<@;6"G.WTQ]
M>V"GA/1$N[X223LB?@C2<*GGWJG[JIT[65\WVB[F9NK849J/9)!KI^0_0-T5
M].;\3^\UO0<[_7K>/Z1:2BXFHZ'B*OYC@]C,E1NX/%&S!P7Q68%BN1-W@NZ:
M0\2;N6H.(._,39.S=.VDJ3F#POW\S6@;NF8.(.RY6U9XE!_#=!F1])#D92,6
MCRE/WQCHK^D1-73D^HB.9"C48HP5TQLF%H1UT6 T+^ZN^ZO\=>*X.S!L!Y@C
M?= ,,U-J^D/LEX[$WF@<6-H1K$CCJ!MU:BMOMKS=+"?'CH84JE@/,]QAIBMA
M%.:)$6]:.@!HIZ.FD E3:9+5? _ZKZ/?0?_QGQ<D3DD4KCBN<D&Z>]7J1L5W
ME34::''DPD'L7/=2%]F!GD[SQK.\")H7>]@]PT=T/W93@<3MF4+T49L.V\*\
MHKYF4GQ;YABI1'2'\=X\H]YN8IQ[D6_4.Y12K/?E'<EZR/'N)/^H!_&7AX3L
ML;"VC.A1\8K-1Q9HKA."0K" I@RUG:;S_!=/ZJT(1X"HOUP3A/56)?"Z/<<"
MVY?@OTAR<4@SLJ,K8H';(&]0O):H@07\NN2@0"BE+(.BI,.\_,D+OT Q/D3G
MBS;!V6U;0E1&93R@?@]WAYW0+ J?5?!L/+-"9HT2'"B[1.5X;+>=%S]Y8AS%
MXT!Z/E\;@;5F1_!U^HZ&NS"6XT[TK,1=\YD-[NJ4P' G("K%7:?MO/C)%]P)
MQX'T?+X6[NK-*MQU^XZ%NZ_!#M^L&U97N/#I;5>\IJ*=!3:E5*%PVL= AEEU
MO]H4[L62IW\0B<'W;@);VJ4$>0_-L0!_FQ!VWI"=9[K'R5.XE)30ZVU7O+ZB
MG07@I52A -_'0 9X=;]Y\9@GRQ;//<%^_W@2@T_?Q+ZT2XG]'IHC8_\F*800
MK,-439J(;S6Q!WN#(##.1;1[(-[M(D:W!XLSY: 1O8\L1'2C=0O, DICX?@.
MYX4E;M:W24B26UX>[6)+!Q-?Q8OEDE6="N,-?1@OPWV$%ZO_HC/.#L>9T+^&
M(E=\0GMR%KIDRQQ*[X#DD.DH"/EY?D,GVT;-NWJRS@##(X''1--,V%(N30J,
MA..9GSU),G;^\C,FFR38;\-E$%V0W9[$5"1QO7:S3I4IT>MD93!T6,"9!0-N
M<N77)C(_MD7UQNC8VANE-\('&3IZ;076Z7]44WUNHRDC,Q("1[;S>ZE2Q]]M
MM*:D J88+8)2[#?:S>^S( O3C$/Z"PY8A@BSBEYXI=T1((J/U\)EV:2"7K//
MJ.@2V_/NDSK"("SSD0XHRO1L;*NE'&E>K.Y%HT&4GU& MY:Q:_<;S[U(Z;?F
M7U<8F9(^KYR&SG,K_Z!%#<X5$!.6S_JB]O/2=61>/'<>4>X]^@),Z6 1C>_;
MGJQ;38_SLI#&!( 53<3BIUVPVD_*35H.@*HS00M:*T#JPSPM&: N0'OF[&9#
M 3C'G[_OES@.Z)>^3>@(D$,:O>0^+%X))W7=YL6+]S>W0',?<2AX:_*1X5VK
M^_SX%)6//5EW:0\Y,1^6IG[T]2P51H_#:!J$-TQUZPL^H5?2VZ[4&7D[&V61
M4073DAX&4O50]ILW8A)^>"S] TD,OGE+!61=*NRK:8X&^G+&J@LB\&UZVY6@
ME[>S ;V,*ACH>QA(0:_LUP*]!QY0_S 2@R_>@KRL2P5Y-<VQ('\L^1JO_N,0
M1.'Z)8PW1>P]/1Y NBZOGF\!<G#_3EUD[?X6JF/,#4JEAC*6J=HP>K6ZR6PO
M^]@1E3W1L2OZBW7.SVY,7F%S*,@(P+C+JBIKDBH5?J ,OAD"T:WT@_H:&@"[
M>^N-WW!LQ>^[T7X8+4.%]^&>^V%8,M3SSA /TW%.QE2_:[QM=3O%RU\WY.E_
M<!;)2Z[>Q3^.VEW\\)\7BY92''\HSR\N!BO8D0E8K8P.29%>M!K-+X(X6 6>
M!!EJ'YC(/E'K#.&"P:G=$F1,K*LI=,GU#\@9'9'%U\7'A;\#(3G\+QH)@$/W
M9BK+/FIC2(\_%-*R'RSA\?L]Q&37H:8"1]%H_GL<LI @7POYDI%1^\1$]I&:
M4/G]O@Z5LB444E8XS%%"_S@BA/[C/R_($TXD-9V$SZICZHUG ^'3D0 "13*B
M(C")V\[Y3]Z4/Q&/ ^GY?.V#Y;5F#&J2ONX1]Y$L#RQFP:Z":<%!]*AXC>8C
M"[C5"4&A34!3!K9.TWGY"[]N:%J@";\_47^W)LSJK4J4=7N.![)%'%,W.M\$
MD8!-U*0%NF83 /#5"4*#4$"[#XR=+D=0YH^*G3<_T"D<,*+W@<5HK;=NH[9+
M:403F01QRJ_)52)8UJQM.CO-(,QHBRBX2173[S6OHFXU4UL]]@K9TH%LVV#%
M1Y?8XU:/CFT64G2/],N8ROMR%=,%/+L2]@E_#++@XI D5*86ZG2:EI5FE$TM
M4*\B#(5\#1XR]/=VG><M4*T)8FU0T6CBRC4Z(TS,1J)5V4;1JU2)?LKNU6)!
M=7+%]/)3%+0OOA(^*UZS]<P"Z0U*4- 6$95AN=MV7OV$V&_38E4\"J3GXS71
MV&A6PD_0USW>KI;K9'%8A93.(LMXUAV="@3@ZV]8O**JH04LY62A,-K+00;8
MGH[SJXM/=ZAH@&HM/ "SQJ@2D^_?A+F\3XGY/JKC>=R?PG091/_$0?*)_M).
M5.AIU?*W.ZT W.T636AO6TR^S]D6]3KZVOE3Q!XC_MP/7ULVAD3[@XL][5:'
MMJ,MI#<VOO,,\GZ$"]H),=YH!X;R&E4W..\RT$-ZNU\'ZT6&OG=H%XVG$.^2
M3Z]"?*V+&/,=FN.A/F=]&:^H*R^+.0O;M-#>:@. ] 9%:)2+B/<AO-OGB.X"
MUO0A6S1Z$JL6CQO1_,QB1#>:M]$LH#56G.0.;T*V61-GK"*6,#XB;M*(B[2;
M6,=#F@1AXR!"VNKXAZ!+&?<X/N)%QWP(=T@&C.A]8%%XH]FZ&=8041H+O1=4
M>9(@NHI7^/O_QB]"^$K:-/#;:6,-X!9%6 2+B:LA+.I38KAXAOA#1)_Z@&+9
MN!'-SRS"<:MY$\A"6F,A^5,8%?=N"$'<?=S ;_VQ-72/Q&!1VZ&K!FRK>8E5
M]G-QXXP/*!4,#.G_F")L'ELV8=FF,!8B'X+O5RNJ$N$Z7/+@B0*>/6T;6)6V
MM0:NA#(LBM5,U)!6]2WQ3=N@9B./T-XWSL1P.$1Z(.G65 HE[?'V&)<DV9.$
M"\"3!2_R9+L+LA*[TEH]6CN.RAX &X\*^M#[C_VL^K8A^R@<=R-K+6=Y)B<B
M"2K:(];!!X72 P09-&+B?4I%Y_9V92^?$7))\TW28XA3'''I:U9FF$J;V22;
M2HB"Y9VJZ4M34%7=YN4&=3V2[D<0IG<HB?YG;^6K2GI4J:M*BF--*G_B*/K?
M,7F.[W&0DABOKM+T('&[>MHV)A)I6^LI1$(9=O)0,U%/&ZJ^Y83!VOSRC35"
M92N4-_-AFN@;:&(X'J*I0=*M.2DH:8^E(G^0B$Y$0<*71DE[OTG9IJ$2G3;6
MJM"B"*L"8N)JZ(OZE)"OGJ'\H0] EPT;T?S*(F"WFC<!+:0U6O@RGW'R_,@P
MWC OJ[-_JM.T&<R4-+6/:0H) X<V53QZ(ISRKE6@LW![JC8H;^0#]'M&F)B-
MA##Z*>S5"H(J*(^E%O=;.LNP.KY!+ [IBQHT5*#9P!KX=7*P<!=05H.\TZ&$
M-G^ BB<^X%DX2$3GLXJP6V_;1&R7RI@Q^^2"KA V)!$#5=BB$[FOM0 )WE?T
MX./W;=+](?QFCWH4/T'E(Q_@*AZJ3BQ?^&UEX?RJ<3>BWZ(SFFG=!5'TX9"&
M,4[%CH:P1=.X-EO86]<Z/6#S*B#=8U\[/2H#RYZ@\I$/D!4/%='ZMD(;6V_<
M,K)=.F-!]G*'DPWU1#XGY#G;JMP"9<L&A"4MK:$LI L+:14+-;3E/4N(ERU0
MWL0G;T(]ML1H$$38%W9JZH""[EBZ<'MXC,+EIX@$XJ-L@N<-W#>>6Z.]1@T6
MXUW":F2WVY=XSG]'_($/(!8-#]'XHB+ UIHV8=JA,18X%ZL5A4Q:_.>:3A5G
M0I JVC7 *FQG#5H!55CPRAFH02SK5X*Y># K_T"L";J)O=C'5(TI,?C\(J0+
MNC01+Z4Y'?+/-9%_KHG\<R?(/W>-_/.!R#_70/[#,_$3^>>ZR#\W1_YY'_+/
MIT;^;YK(_TT3^;\Y0?YOKI'_VT#D_Z:#?#I@GEK]WW2Q_YLY]G_KP_YODV#_
M@OYYDSR0Y_8=!#VM1+BOMX)"_9&F$\QWR&LAOM6K@W?VG.5KL18>(5TPBB*<
MBS^Y N7'#D*,M^F-C'">_'63W";D*8P[@--I*L)ZIRD4X%N$G:!>S$,+^J*N
M'?Q7"8ME,X^40#;&(DU0C(5"'5J]A#HAI#RVZ<\3(I5VO]E$:/3+)F 6ORCY
MZ<3<-VCKV?I:EZZASQ]Z!._VB D-?/<+JZQ[D70L-.UU2B/#]Y:D61#]O^%>
MFJ^N:BB"<JLA%* ;9)W 6L1!"]S=CAV(YTT0;>--VKER7$6 EXZ  O:-/D+P
M"ZB.D%+.^"<X$(!>]*AXP>8CFW3Q&B&P%/$N36E:>+OIG+O:["</T"D< *+^
M<$T$UEM5B=V=GNY1=DU8?8HMB<6G.F6/BY?I/K9 7)L8%.HD=&7($S:?\U\1
M_]F+<V[2@2']'[.)Q';+$HUB"NX1>8^7AX1JPMGYXP,3M(44V>.LO"BQ_=@"
MD6UB4(B4T)4A4MA\SO]D5^.>G;][?(_*1E-?@R@9'=+_19NP;+<L82FFX!Z6
M7\E#$JQ8ING+[I%$@@*!BA;%JPE;6.!30 \*HG+2,I3*>LR_$E0\0?DC#\K^
MJ<:*:'W<)EH%C4O 2NFXQVR#<0L_PF?%2[6>62"T00D*FR*B,E1VV\Z;8)P6
MA^)1(#T?KXF]1K,2=8*^XTW=E]^76SH86%"J2=6D-84WFP!,XW6"T%.Y@';?
M=-[I,B^?H/*1!Z6:E -&]#ZP>&:OMV[/[EU*HYUU(KL=.T=.EM_NMP%%U<TA
MHZO_F&F3,/:DTZ$1@U)WL#_]I" /? :JGU//2:@^ M5Y*-X0\98SE+=%M<8^
MQ*JT<$"&C)0H=J7JVSHIU<MEA*+N>85CP7P@>%*\;N.)33GW(QTH^'=)2DNY
MMUK.RRK8TQMVT9<GRD_6Q&&M457 O=UO-&2Q8 6K_R%&5_MI$V''I_8H*VD!
M(ZU%M@=MC=85XLI?O4!=9T1([V<4HJ]LV$)@L_]H*/P4)KNKE1B#S6=-!);/
M[/&74P)&7X-H#_9J;2ODL=_0U4<O@-<:!M+S]82@RYNU(%?O.P!P6;#,;Q0_
M.__MC..*_?*?%]P+OHJ_X&Q+5C?KJ_@)Q[3S2W5=\@-9/.$DV. +DK*#T'E+
M$I'-2WX?:'OO"(YBN>4$07$@]*$^DJG&K(J*R*)I!5@FD<*!LICGA% 8HQUO
MP(+*84D,/55WH#-%0C]QWS%(5FB9$T7/VW"Y1<%^GY#OX8Y?1?OIZM/-3TQ!
MLBU&02Y#U7YWE.+7B;?Q '6!N %C:]?0GC@?%5!!/5!=Z\NYH85QK;1G=:W]
M4FEM10U5Y-AX%P1101'52'IR:[3'FBB[X-P_51Q^[ Q2BG,37<QPDN)KQPIY
M/H)"GELIY)L2ZH+*>R7LGH"S</\O_W4(>853*DGXA&\IA.E@_OLB7@F?G/U-
MZ/);4BF#UT.IV-BD@4S!W7D[.:3&QX;LG(=T45@V07O:)BV\\3U+-U]AM*;+
M[^"9>NN\3@;^CI<'UC:=H6_X!>'=/B(OF/US%29X26&9(NK=4U<]3@\1=?2S
M=&(7W1:[! Y(K3#\,(*5N;$2:"*5@G&S+05PH4S4G<[;H*H18JT0(\ U0O;X
M[&^>3-X>*(K$4YY04RP]8@O.@%ZPI10N](5ZNUPSQ%K!](5KAOCQF[ZHG=H)
M]<6!\[K@WL=BLTGP)LBH?YTE89R&2^95X\4CNY%KV2D29-ZSX:1J]K0W#5J,
MH&=.(Z8]VF] JYPA\RXS5'5"52^^R,7HK[*C%RIN!B-B.;XB5=:BTE)?$\XC
MXAA\6C/B# 5F.GV]H5<TJJ.C%W3"X>E-'X(4KUC1.QRG?#F_2!(6V&'+^P\O
MQR:WP0O[B4M:SHM4+AX&2&^R+4X>MD%\LV<DTLOO.%F&*4ZOXOP.U#]QN-EF
M>%4$A#ZS:R79'1R?@C#A+]E.>_50M#+=UBO1;&R93V\"'H'R\.6DYM@[6></
M6XR>BZ;5AO2:MN';VQ@%*8O6L]WJ#;\B=\7+6JP1Y@+]\L@$S0-I19B-,,%H
M![J>27D<[MTA#K/WB' YBT;T<4;9)IA%WKC<*[0Z)#Q%D[+:\S>8.,#FTUAU
MYC&?A%,DM'LD9341^R24?=#2M[>!6<_Y^%8G8]3IBI3S*XQS72A4DPH]OJ!Z
MNT*R?!D[.X:H*NG0S=&T%P+29J6(;'LW%W*&2C&K[5PN*+^;#C%1\P7%FWD_
M&?,N6<7[)*:W]MTR#N';ZP &.GQ\M9.Q\N<_S2\KW_D=-;XK$D5!DC+G&:5,
MDO=O!O9D#*PDT.23F-X:V),)E>W#_"[FU*<@F;E0(X3'3(3R=7+5?X>3"HD9
MO]8D,ZJAE/,_1P^!L02T/"6-44X8^R(3C9M M*5LHV#/:!_B%:='33!.=I4T
M>YY2L$DP_UA3YZ/Y,9JC3O3#-'R\&5Y?OE'F=M//]3H,N_\!,?/W.0&3/G(0
MK!+N+?CU*HSU! &OD[;6'@>YS%[D1,);YB]U C:;A[1HEQ\PH/4JC.8$0:R3
M-IK.DHI;W._P+@CC,-Y<D)@GF!V"Z(&N)#62C =2$B0=&U."2MXT9.PF*7F@
M$%IYG8-HMY.62R*_E%YK10;5Z"!&R,M$T*% %26&VB!&GBAJ2%68.#I,L@DU
MR5%:]$!)7*D3=5R.ZO*F(CU0\$Y%_-A RB\3N%GST\N-HT@IU':0!@O;S1TE
MBTF6B J)_-EXZ1<2?OW6QY/G!L?YU1=D76QEM$[5G^JF@XXF6"^P-)$'M%I2
M<+-?^_2^BH^J/7'H74.ZT94:)BS^56T4WFR"/61?@5&8*B;<(Y8/$5X-$4<W
M#701\Z;7SD'W"O3:C^52F2MXFX1+O$AOZ;^89[[!-VL69/T2)-]PQD.M-^M:
MI?\%#\/>K'E$%BS-#E 6Z^PZ$%FFV<P#$-V?)1W@VSC8NX,2CB\2JZ2U/2/'
MYH^BM!I/F&MDL.7);P']/[:O5S M,]IXTMV.\RYR[XH'[.V"^.7G%"WS"T_R
M^2G(^-,R(8]S.]45*:@-L=\;!%9%J!U! +$ -@+!/LY)F]FI,]L 7\-? PN4
MQU8::"X.,[^W#>/+\])RF8IB+_3'^MU2S-1^+,PLE^W-RGID9<&SU5Z5F9TL
M-PU(?A\"%I#OXJ^QK9VI+%Q9@:,J=%+;;FG#)7VSE1[92O DM5=E*]T7:3<I
MQ6Y2<-UA6?5QBZ=;E4CO+X3>K(.>OM)"Z&95:0<6-=<K,.NX0/E(9<CMBHUK
MEA3WNV;X<$R9U/\V!Y6+6MYC5NRVJ\O=J;Y]BN6UAT/+I%2V.;1 W8&/^#$[
M9L]_">-P=]A1AR5>AOL@6NS((<YNXC_9]'054QSA-+M*;X.P?6^H-9WB4UG0
ML=&WP6S!W0];2:2*:D>8;RGL\DYL&9;W0@'O-J/^"^9',*G?$I,,I0=VQR)_
MQA9<$6'["R%U4GBJ9_2"R/%6[QDBI?\3%GQ9TSWEC,+&3@-:$>H;,?K;@-H/
M?EOC8Q@QJ\)N-^6N$/_UD.:+PD.\XB70^'X$WI,TS*@(2R[6<?=C0;_'"J_0
M)XS1-<ZH"!,[3_:Z1"!AW31B@TE6!LY2J,G4',:1LQ;!C8)3!Y#UKYVJGJ$O
M$G67*^R;WL@=RXD5Q](AM>(-Z*Q:R^%&?:B3^Z8M=MCP2EL<^MB?PCB@,@31
M!7G"],_L,@HWX6.$JRL<[X+G+P&5B+8YQ@R5_K8E3:'O/9@FG)D9*()CG]Q.
M*DW[8\.$^^K-_1%<]$9)\(QV13<6A(P.S/4M?.1E$"T/4;Z/33L]DB0AS^SX
M'-N_1N&.>M"T\>-+GA=42HB6A8A5$:P5\R3"ZEV\<J=M545L] "0JK)_ \E+
M;*&5L%YHMPM7W%(<]WHM<M$K<JBD-T,EQ>-USC-$B:*2ZJR69_*FF3HH.PG5
M!'7P+>1PYNQ;RN1>0>DBX+9_UGU3.1WPG(3*N8_$7WY?XC1=/ 5A5(0Z%_'J
M]Y@M5I)PF>'519!N=4+Q1H14L7A-0N"Q!BV^XT3C340Q"S?H4V[$XU/Z_]3<
MO#M[CS"G@((:B5JH^SZD"$<7"5Z%&?H4+//G[UA"51$$+YS[=A,>(V>"ON>)
M!N_.WU.J1['HRB'=HH05WTVJDP4!BO$S^BEE 9$-_;^?.C'X)2O_0*)CO=P9
M6[;LPBPK+YTJ(__J^'Y(EQXMVEZM.0;IH#*Z8JP-&M$5+9KJ\(J!6-,9"(=Q
M?",9')D&521?9!V8/G=T^4U[MJ:A_#'5QT4P7YNYZVB^D2".E*@6S]?6F6K^
M>U.>K6ED?TSE&3U_YH%\P%^"D+J988Q7#^0C]V1^3UD>,'-AKN*/N?.RR'V7
M :DU0UD89-V8LW"]WV@JT22Y.@.%M-JF',13F>'#W.U:SLYQ:Z"X-G9W2#/T
M2/M77)E?3I)5GMB68/;CCYVQ,UA%3;99;53"? /6E)O1WNRP5_'1YHR7.#14
MNM&MC5&Z$45-T[0<;4?;;K1LQIM5L ?M*S +(^0^#1%KY+2HH2*.;AQ4R51O
MMF "6V"1H^6=+7"X^LNOQWP@I4CVFS=6%(5KNX$4X<SG( $<K]QL9-*TCL-9
ME-E<M#O/KPIW^=$'SS9_NBO &3/"/]_&_XR_Q!\?XG_0_]S_S(ZV[@+J[;$C
MKOA[L-M'>$9;G?WSW[^<_?;Q9[I4W%/2F&63T3])PABLZ??D*] 8HQ<<)+0W
M.T"V(W&V36=<J&P;TJ:86OW@9>K#KY Z+#;MUDJD,N2#B$OLMH6@'I@<%PLW
M*V%<&QO1LBPGQL:W5.W3W$;R2@^U5E=>*"+HVFFP%,Z62E82N5;'1O5?-K&]
M::$;5'FOA5.<1RD63>D=7N+P*:"_##N#(J=C=NY$1&>$C-<NVZG.ET@EL4UM
ME1!6G2,I@BK,22_[O!TGT42]8=:L&H"#$F6[)$V38V5"3::0HQX)D8O@1A6-
MCWZ49-"1SIO66!_I<*4VXQS=$/,>_[B&7 XWRB,_EB&8Q-ZTQ/H4ABLM ?6!
M[_ 3B9[8%80\V%G&.GF,]!KS))?/"3GLKZ.EL#3BX/[%)QW0W\9$&+,#]W&'
M2B"U"<,(SNOUN9_#;%N$Q8L>B'=!U]<7>5Y359$QH#:BX(>6>7R<OB*>H?3P
M^%\XO_8R:+FX$SNJPR%*(%#3M!W&I"J;,5"(T;4%Q@$=S!I63\[8Y;DEWEO[
M03.QRD1+3XKY381[B6LY,O M7<E!/ %=R,'\8>%/74;60+!=^D-#7.(7C@SQ
M26OS# N!=KH/K+@S[A'_R>OH0)?,Z>:Y5W<%B ODL.V4-6V:;O$*;0CAB64%
ML;=PIQKA0VL#P-7$&7S@?_Q*-],5M0&O7V-7JN8'!#M0F1DKM(]</&;B.C'@
M)6$*G[&"<_@#PQFHA(L5G$%=Q-O@9;G%RV^W"<GPDDWO]*]-$NRN21 +@X,&
M/8J/I-7#1D,U&("[>_H\I8JH2V)>-D3'EJAH6I0?#Q*,@D.V)4GXW[5<5Y*0
M.'@*DT.*%N%J1A<S48C7W/.[I*I%=N$2W>/E(>&9L$LZ:=T7Y/^O=\'[=[_]
MS_>EWW:_"Z((?3BD8<SR<FA;]([]_M/%XN[RGOW[I_<,U45,D67 ;HKX>"XA
M?99R&H\%#3QU)JL)D,DPI#6MA$;GRC!H,QI!;V!\-P-FMAISIE89UMB36(=#
M#$H\+P<@M/2O-+D NE0&'&VAR/9G;V]_$,A)O",'D)LT3/:I")I\9C&3ZE>P
M:M:ZY >&V?K)C[E8ZI-F\C"=IH!@JRTM?JKDQ;>0GAMM&[IL-$&XW:JRC]/@
M5:?>*_AF-J8).>I*-JK!L*FN7=)'G$']R:E6VO9"Y8$"HY/J_,B!51V1)@R\
MZHHWJN;+\T-E?L*;+@\'W0GK,NB*ZG,0QI_H>%X6ESG?X8QRHHYFG@K1,@::
MK8N/V]O:QB3U$ =?C>CQDUH,G>Y\K7 L=+=AIRN9KG'?O>R(JIY%4M",)X6R
M<C-YCG/PO<P,#1B%-$-+G.0G-3D)GG)*6^$4X7\=J%-!L?KO__9_EFL$]E.X
M#JFU>:9X8Q=Z'PU1<>-W@O;%(=#J"G 4K*F)1E^HW=BBL_,9HDC[M[PDPB->
MDP2C_Q7$AX"N;<[XL[.)UQZZ0";F:&M:EIZ.E:'08N!87V#<<$U&-II"G>3/
ME7)(%>/5(4SBB )"S-)-U.  Z/5I<K,!VGD=:*6Q8V5$"Z M7R?0)%X2(-!
M?9BKF(Y#D.*/./_O52SA+#U";D&A^$2#*-CHV@"&X#[1<!FD2CF4Y'Q1^4UA
M00*]6Q5$WK- ZO*0),SU"=(49RE:1O2/W-$)4KENU\[D3>RRV&"4P("F:0X&
M$*M,Q&!!)E 9&+?(@CFTLE#WZ:K2D8]U'9'Z4MX<X)Y0"R3NUP1J8.FF#>2J
MY[K]/=>#&&^"#*^DSIN%#-#JP#(F-<S_#XM[B3<X >ZA\RF9<Y-^(LEM0I88
MKU+FM'XE&9;7&C+K=,RJU.IDF9JCP<-%;J4^6U6&CBX5'B.+<5;&R:@31Y8A
M,S7Y,>I]08H7]GS'M7?/_D7)O:^5<5Z2*,J35O)GC4/3Z6%?5/Q\?*$/GI,P
MHZ!D"9.[,.4@IEQ88(P\1N&&?YOI$R1-8$D&@Z:3+J31OYXQI,UN'%T RY<T
MX >@!7G69 WG9?L"Y[R+-RZ;<W#*\R?=H-,^BU*3$:C'9<86 *74K[JHS"Q;
MF,>TC3<.E7-4RE,LW: 2U#GZ=$CB,#LD>!&O;M;K<(DO_W4(]TP4X5$3[?;%
MQ]!H;Z-BO>3!'2%=CE*]TB,PKWZD+LQN1^+HA5TXD5]SQ7NE?-,MI0.-BTNQ
MML$3=9D(O],VB/.N<5RH)<,9]:C8#O62<6=Z2GVA0QCQHAIT<CED[#!\6!#.
MJ/!\+Y!22TE,72GJ%M&_LZ,<02D*2C&_0O=7=)E76$_+S,89Y9#QHS#4)J H
MW(49OT-CQMYJ?V!Q?_;G/J1_Y*>?@^]H%RRW83QU&$X?Z60(&)O&HK=K92<T
MF3A7*AB/2IN5G3I1/ZIJQV&6MT1')?/C(( CS$G\)F#067I+6CP =Q6U^=E!
M[_S'AI[$.0*&'JA+=%',3/=DG3T'G+':)]+O4'P$G0XVJM1/']PMTF8IU29-
M"O.R'4J+AK/"V>#G)*BWT?8T@F5^33+7OC"F7:DW0]VI%7["$75I5I4O4B/)
MVD8DWOP2A4_L:ID5NR9F&7*7O=A8Y#X7<VU*?XB?X$@P_T:SO&X^2_Y;YGK/
MW:O_KLYVA'%^,PW[9_J29G@W]>%; QB304!KFH#^OI4-T&7C7F=@O!Y]7I;:
M<E93E[)E?M3<L]G'&?8DK@\X^"R='STF@-Z//D-+")[_\!"4N$#@$(2-"X7?
M\6K!)[K+[\7L>D'B/'Q YZRKF$>ITE0<)1K6NXP9F?:V6G:8,8./)PWB+U^3
M#" WYYU*MP:7W5CTJ.I'_95?]GG/7]F., ONL,QP0E]H,RM#-DE^(Q NP3E#
MZ\;:IP@7U9YW7*\V >Z(L:WC+8E6[ AL0IYX->6IW:6A&"?VP&NMI<P('5=6
M0P086=6 HDS#&$,JV5FI97FW&:HZHHN6FA5]/9D6)X"Y+%PU'LYM0UGF'"$#
M6\.X0Z+]_ WMYB,_&=I!'<?>_*[%(Y6%MFPICG&_XG,9]+-1:6TV<+.6,4NI
M!AM2FNMD!Z._RDX3JZPY<(C5F#;55)M&I:"F7$=#+> 49,P7!KJLC/[A,:6K
M!Q96P$\\;^H'PZED.G&,4]B$W5K^B]YQ=8,>9:JN3@^KY*]^!O!)NMH\Y5E?
MFB1X>BZ[[)=M9$3DN9.?JW/0ZGCH_?=?[W]%G^G*/HD]*%AE B<R;+Q;N6+]
MG8^)8KJ,1D O4%JM/C-;W+*$VGH*[?$@E%]G?1TB4)9$"P]!V_19/2Z014CU
M.=H"4?,L4GE^ :]>+1YEZ;/P> 2N4)HNDW#/.-RLRR+<DK6M5MNJ=JBRK5UQ
M+P5IR/)\&FP4%;=Z>\]K;7B9S+($NB^NOMYX$^-A:=>R4O2K%:;JIPZG%5\/
M+*ATLRYW*N])=."'KUIX[&U7O*JBG8TF2,F"N^1]G*1ZH.XXSQ\S]%<;9VG9
MXNA6\V)-O^R"Y!O.4,HN 2B*/Y4J,[&CW0\#8C)B3?V0=JETHX>H,X3!V-E>
M%L.P=:8&UZL C,2B6B+&TM]5T@;T<GOY#,/-.9A1>A40D[BUEA #3G1^"E=G
M?Y?D- N>5>G+C6=V>6\U4@Z2DKO4%>EL[<;Y$73RA-DQ\N.U/>\N;OZX^OC+
MV=_?(_JM\::XX"=@EW;O@WB%V14^18WV/TD2K= _<!!E6W23;(*X2 &>/-=7
M-+RD;U3:&6RU9K5DM4YG4(1 I> *R.IC@R?6TM\H"CS9N38<46E>K-:06F>[
MMNB!)K8*:.L/+$M7+=3[- =6FFVJ-;"P^SA5->,[O"JS#ZA%_+8F76#H-2YW
M;WH:6X4=E;3A]VQTV,FCC?V]VQ>3)&7#\L@*RRX.XI>?4_1<=D2K ZZ7_454
MYW9A'.2>"C\>3!^1A-7Y71^2B!PVVZG7DIH (L;#W(I+*OL=0Y(:Y-VB%&AO
M1HN/!3[/&M7P&^"LX/C*@"7;@8%"ENV^2R\#R"T7+686^#K_\? EVU&!PI=[
M)^$^B((DQ.VHL59;E8MP; NN("7I<1R$%C<S_6AT5KH':=&2%PN)HO+?JQE=
M%L>_L,(D89K2MG3Y6]T04#^.B[_CY2$+GW!Q\B/QTDGH($BI:J*!UE"TLIM:
MSYK$G8+4H7_09C,<G@KOH,3FJP*4B6M@CB@7CD&=OFN_H,UK.*X47@&\S7M5
M"#5Q+LP1ZMZUN C2[1UFU^3@Y!/6<S%D?52N1K</N.JU68SC>DBXFNFBD(C2
M%>&YIDG1!:W9542L(B;34*:75:1B%29X21'BI:<A!9)2_53CK*&%[>YJ;10S
M&P6[#CT2&3M[U"H\E"YD7S4D37P7>TRZ\&5$?%S[-#*>]LA4^#C&QO15 ]?$
MI;$'+JB+4R8+? GBPSK@A3T36:Z=L$TKSZ[5!B*=I4'267Z=B$MO'DNW4[[E
M7Z6Q[.H-$!^8O-37Q3:, [X1\K -0LIEY4DFG7B0VQDKTC$1)ZLTFG<2503$
MG. &-FM.2-X<,8ULN09<3AH//0ERAH  2HSKT'60%"?D80Z+<RDLQ-;CI,'2
MD^IF"!;8:@3K-:M__82OXB79X8?@^QTUX7>8?8PP"OFT\B5,ESBBHX#)(;TM
M:V=?L8J,Q:3> B4LT;*. 1!1J^/B(#* S_&@8LE/FL-Q:=WOSI(L5B$EGV!6
M#/019\\8Q]3_+BZ?"3E#?J$S_K[',;NM[1''>!UF[_-R6/3796_+HI16?IG-
M?A^]L&@DYTW[I%FXI([^"B=!A%+ZK0_LOO$ZP23(<G=VSQ8&W\M'[R*2IN_S
M[%WZ*;(P/O!Z\7M*J4@'R;(D?#QDY74&N_I'JA6C#SVH<0JLNL29XK1.[X/0
M/Q[M!Q37#WL#5'$%5)X1+ VKU5(20SDU1,DA1@\U"<Y0@R2J:").=%8N=]_T
M4P]H)Z*@M@5DP 2!K"X#*M0(:DI7 U]4D^*;SNE!YT1T;O05S#4)XD]TR&DK
M=GYJ^*I%3<A@I2(CY-H6B?E.LB)1BF)E=!24H5<>C,!IK3[6QP^37W'%;G%
MAWC%CCU0<6Z#E^46+[^Q A-9<3<6_7.3!#OT[O;VEK[W:A?&84KGH/QM6*_[
M'=L;*8_/HT71)!<"T?>C[,-T2SODG#Z&3R%+$D&+&7I@P$%7Y7A<U(Z2+<+5
MC/II48C7>:7C2_J2A)T?N\?+0Q)F+^C=3Q>+N\O[G]ZCQ7+JND@ )L1D=NA7
M9O,)04S3:!)0B36=?1MO!:26P9%E,UKI,#*H1N>$%C>CJ(_%(L:I_HRP6)$S
M'WF!HA;$D1:QE(#;6SHE4OVH391O:F&[SG"J%K!)D<$R7(?+NW G//<O>US=
M<-]^;'=!<I,:? *CF('BSF-!^_EGS-S#_9:Z94&" Y0>DH10/Z_T</%JDZ<+
MY_XE)X%NECB(?T4/M9\H6>K$/O%=,/KS,V8^9HS2+;_"E?;_2KWR+5KL<!(N
M\_W!>W(X_C+CEZZN5B%W.BFV%@?F@E+\S! .<F*+- PJSSU,V=YB6[2I$R-E
M"",:J&A?L=QL6;M,640"&JI0E\J+*1N!E%\4?T29'R?7!XVT](YW@Z&VOK>]
M2Q(R#5!"WFC SU_-@$NO3S<8<- 9\BJ_(I(9V2 23I**%L5+"%O88%) $'RV
ME/.00E/697Y#)YR$SG:'.,L/TQRR>JFGWV-^/>=]QL(^$T](JM$D>I^_"5U!
MXPJ]4D(.P $S/RF(F\*"SE*-)YZ8+0L 2&:K 0@ +</Y*63Z=<VNKJ7LZ!"%
MK%X_NQ3FL@CF+G;4URQJ42U80;9_XB!YH$3; (,@5=WK9T/*[D*FX9S!S2R
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
MFEXHD%5S??V[7=._Z(_E3_1_V!7R\_\?4$L#!!0    ( !68>U8Y'*%[.7D
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
M<K3!G.UQ)D6O_0<4KC:[2!%PX&R'07,)RN4-M4KPAVT0Q\.$&KU&9E+T&GE
MX6HCBQ0!-?* 0=/(+N^O58)?;%&Z(:/2IQ1_RY]IQHH@8?=H(66OT3F4KC8^
M1#$0"#B,&C"XO"UW%:[3$YH5#Z<G>8ZR2E/&MHZ<L+:8B- ])(#5D@!!Q*?!
M@<O[>K4W>R:K5I$O8!'T_7Z/P+WVEJH!\_J]\DW[NKRE5\E]5SS%47@9XX ]
MBV=\[[5N[[NKC<M7 M2VO>)-T[J_AT?0N*5A^CC\6J;0RFZ+G'BAA.X_L]?P
M@ +]E;RP@*MH4% 3MJH7\FOPXO+F7CU,74;I]FHU@ ;S6VV>P3?W&EPDO"P/
M3;]HTXPN;]K5(C/.9AA?^DWHZDD,7W!8\_7.77YV>7^M%I@&:'0SMO4;</BU
MWXC[K\XV)$<!6&/N"S<-.G5[[+]^&AGHFOPP9VX[?O*_B1!;!]E3J6N1_; )
M@EV%,Q3G6?/+'G#U#[^W:1YOUY=10F2)@O@.5]?V.1GP5(HTQ[Z@(E.[V"3]
MRU<,>)KV/@YUJC]:E?XL#K+L=EU.04Y>H^$.G91NJ-.8SH9Z72G.,7V_<: 7
MGZ")S&006&DH1/,RG]PUCJH4Z#-B!"@"*-M8"@&E/?_/;Q*LHMU@0!AQK6(L
M!-P,9W\\H GEO14#H-\W()=G&>7+X'4$YNM[;0QW@QS3E?Q*W/'Y6,\Y.FD8
M(?,;=$7^RAT_1@3#@:-#8$.3*A,_9^+"_MC,H <?[4E?'P$+E>#0]'09T5@9
MPH/L^219T3]HYO:7("8B92?Y69"F;U&R^36(B]%-"Y4RS4 /*V/-*8F;#>LI
MW?=3S"I*]PYC[:7K:MYUO4<A(IH1!WV#<G90"H2TZ4!"4G=!I* B$#MBCM9S
M,^M YJ9\ZWR%]BIE;,#("=O@=3ZANV !JP>$BHB??F[G'*49NK:'EN99G;?.
M T'-\3?C4W/@W?OD+@8$*@!;O<_!>E9GG28FZ\==$*UZ#Z[53<SZ5-NG_\G=
M)A:H &SB/@?KN9MUFO@V?T9I3\%!0_,):ENQ"-QM=*DZP*9G\;&>Q'GRTDJT
MI!(MI5QN<0.-S6YGC6/K'.=!S!RS#VXQJ:DX2VB6R;BVVO/P<@UUE^(=2O,W
M^O1D^>(2623NZ&;.>,H#(6W'1Q&I@[!0T$V&#C$K_563[<EP_1!<LBF?+;Z/
M-L_Y[?I+5KW&.1Q1(;3-X"JF=1 L*MK)T"+AY>_:Z1/&JV]1/+S:/_RY-M/^
M9P?;FR.SK&GWQ;Q<&9W7<K9/2H_>RJV;5$Y8&TQ$Z&"S@_62 4'$2']%9;N#
M,]YCOG@-XX(&/G(ZOTJ1=C,%4L1!]&CH*L,1C*7^$LTVHCH+SAN<A+*U^IAF
MO%SOTC@($H@VTAD$FX?UQW;T5^K<QI=8RHLFG]C:W(;6"$WF+]4/V=K,-F:V
MK,/MJ=6*4][/<6*;11 :@KDV$X;9M(SV5O)\@^4Z"IZB.,IIL%I21:GU7K/G
MA'JH%JO-"B]FV1;B0!<YX5A?)T)>*'ZSV_49 6;$"440D;1:L4BL=7- :V"0
M7OU.SV=;YJIDLO/2!31Q%'?!&ST9%T>HL(D&L2E#(L>A =)-!1P\AE[&I!!E
MTH*(.=)XC! QW1XD/#KW<0+24!$J/)[6'QV?O@W?J/7&A@R,F+D1/R9V'#Q*
MNJH@2,;8R]W=LS)@*\Q_B_+GLR++\1:E$C"I%&DB<T%%' >6AMXJ\(*Q]S+R
M1CJD23V]AX.8T=%+,&SI;/"ZL&F@O+)EVA2TK0"MBFUISS<>A'Z%N\6J6 KB
MYYW8D-5!G9XM]"$(KL_+90YG&L4_Z8'2BZ>OWJ)/57]]W %J\G.I1$_&.H80
M'RH*";LGBQQ"O\ %U7@"J@15>+ED@B )8M)CP,^\T!&C1B=6QO))9T<A/F#X
M,/$7''- 8IX5T*$FY=MME-.33JHRG?"181<EX1@8 ,IV\BV@] HX<)VG3+(%
M=4RX]F Y=@I\L P^2G;M\+B?Z865.T! L;^W-Z:P&#X!Z11RK8:Q%"+X,[GI
M[V_8AGTG^R8SFP3G<\=S]C\[C@6)/BI &+/R<E?A9+4J,\D%\5T0K:Z2LV 7
MD2&^H]WP%!5<H#E.!11P'#;*.JL "<+<R^V#>Y0'48)6%T&:D#E"=A*&Q;:(
M:>K&<[2.PF@XM,(+U&:&%' <6LHZJT +PMS+K82.(N4V"4T=GZ)GE&31"ZJN
MB5SCC ;XWZX?@]=Q((A.Z7UXB%IIQQ$XS1I*GDZU)B\/;1]3%&1%^L:=5/$)
M\N:)WC&!XR"2ZJ2"$Q8SC2V+7RHH)&A#$>?4VE*ZII2N)9U'A%0G%42PF'F>
M8D%G?P>\]Z"_O2.J0O^FC!NG#DSE^?O)0G+@?0'/ *:HO9'M:$Y%1WVU1_-V
M"N32#YRUX?T*&\;E9RD>FUTQ/7&'P1$8"O+< )8D[>>83L"Z9]":I:%8,)?>
MGK@K[?^,\B@,XN4ABN4A"DWIEX<HEH<HEH<HEH<HY&/N\A"%W V"9WK+0Q2.
M/42Q7/E_OW$I9"Y]FY9 7)4[OW<H+9\%%8:JR HQHU?XA1S?6=7273_&A5^!
MEVZRKUSUY.Q)D3_C-/K/?CW(A!F/F FO,;%7L)+HJ@^G,6,OXV982EUE60&"
M4)]0 )^&T$/H,'6<"IN&J9?Q,"R%^(^* ZD%X''C.7%]!$$?%E>'$?.)<:^P
MU(D. \Z8%$J,HSN]G2NI:ZT9 RJ=)?D5Q-+13#)% E".\>3=Y BNI29^N-,B
MOYX*&6G$G!-)J'AX\60V!--N$DX&\R"_DM2.M.%/@B"D/+3X-/U1T',2;E@3
M'[_">7JQ@952 \P(*%CQE0V%XPB1:Z4=8=EPTX^XL7U8X&\LG<\G,^-C!,<B
MFWPV[A+9M$0V68EL:K7*;M=U8AORU4944W4CI)6'<^XEH6J?0>%0V;D8]X*2
M ET2(+-25K5ODM#\[>1_J_$-I@D<VJMS&ARL]799(V,3)NE[ 4Z5U;4ZC:J\
M/"P[PQGQ@K6^H[49XUN[&.M]<QDW(C7 B!@P\?)$ZU.*L^PNQ>O1O5S&E^;9
MN>X7EUN9KP*XC7LL)KPK:#F#3INL[N)UAQ+BH#CCJI1NF#9P3&=G;,T00<PS
M62&<D^X8X_+IT%JVT2@*H&W'2R&M->S+FPFK*=KO#USVU3@H9.OEB/> XI@.
MW<GJ<Y!^11W5A_%64L(VPI=/Z#9LP"HJ8$;$T\]A$R5$W9@H=++:1DE$5<VC
M%\1&#9"Z&5YEU&[C1TU9!1!)&7L9'W(=Y=&F5/\!Y<0D_($+0-D&MPHHW48/
M7$D%Y B9ZD>"O*#T";OQNGBCM6PZ)YO&N0X/F4(*H&"PFB-5JELK(NC\'KP^
M$C#T,L2JU6>?F8;7I\84PU[5I? "%5R5U/'09>5O"N(;G."^1C7..>MG,'UM
M5P"]I5?*$6EQSD2$\W7_]GC_JS7DPQL#RY3JXU_*N'YWO,]08V7L3#*C1IE*
MVW/R_RR/PG.THR=D0P\)(Q[ A4?L%WI *D\ $X^_EXOH,AT<5_WAL LB[KXX
M(2#V U1**FN 2L;?QGHZI^?4%"D?/O[\H40+_>7W3T&4T).WB^TNQF\(W:.<
M*$M4K5ZZ'>ZWP*B;_189M1]H45-: R[2"O0G_+838E/5,CI71=EM<O%*S5!$
MV7,5#G*.GE@  ]%W(":A]P=D*HIKPDQ2Q83UA&6@04<[J-?W?HR;<7B3CVR^
M/@8)6-*K+D3!"WP 8R_OL.SW*YH(GR@IB([[:+A3M,9IG;'X,7A%&7%.:4"4
MC9(@?2MC*^F[2S0V")?'7<VDG1F[-FM-O?BWF6IR&?V',S&XW\PJTAQ9<0_9
M[8BZM1<Y10D:QR))J'IP9U"Y#U69:HHP8[#3N/?CS.[3#<JYV_',;\WLJ/_-
M91B(U("/S7TF<R33/4R#-T]7-/>I.;OM,K+:?GPR%W0[#;(HE"C6H^%H5=-8
M [FT,3!,KS[:>5PIW#G<O(Q &^IR'L5%/KI"+:'B(*.E\@H;;-WTT='RT]\K
MY^\>N#68 /TB>%SA\ZMM^8N/P3-,]U'NB9]'61CCK$BY<=):946.FU_6AFE^
M0]'FF726$])*P0;=%#0OZ^UZ=)V<-79IE:U-HUC6&7\&:WX\S3ABUR<4@79B
MQ:KU1U'[/9NC:CT"R-)/:)860YA?^FA ##30/##F5_[^AGN5P4A[#B"II+&Z
M7[/P3NJ4\^@E6J%DU2I\%F3/]*W.@;=0*3).6B,HXC+B-)16N%4)X=W@:VK$
MBT/W[GL/(Y8[.'8?%:G:J'SN??1BH_Q]$972XZ=&8*67O<A)*324FDAICU*Q
M$O[>I5_#A^A]TTN<DIE+<E8019+P[;'V#;3!DU7YK[AJ_M6_BRRGMN.\8SMO
M)=T NADJ\1'V!S'XY/XSEY1>1I8R[,#I30#*_:R-3^DCKN&J3P:GL"J3615<
MFLX]!\D&95=).7/MOW-I=V*G\+J(0IGQ),ZU-T>.Y,&XRI2T2^&$0DWT:)R(
M=J@;F];R,ISYT!KW^WB!;?U1-5A38+E2'"?,8CM81L_TK-IAL'"R6I4Y^(*8
M+ORODK-@%Q&OS\0%B+8VIX36?;RH**N('0EK+Z>$]R@/H@2MFGU,)H#$1&U2
M(#:1^Y !J:>(%1Y/+Y-Q]#(D,Q$BH&#EF?8'&W+%%('!9.AE3H"3,"RV14PG
M^+Q5-GLX4BW7#$WP<N[C2M<(JD,6O!I_;P\-E&>^JRRD:2)0V#3N@PFBG")P
M."P-WV&Q84Q^,G' JI!CQ7%><38O+Y<:Q_.6+G%X=/1%YZCZ\RH9[\7<XSB^
MQ.FW(!T>:6N6WM_"4"OMQ@.[HZ;F$7 ?U+5[9*_58LP7,60']RHUL1_$F.(?
M=BB-,-UH37.+(_'94;]X-0%.,)4G8XI;C?[>A!O *E6JE#DO4K*@OBO%*E\7
M++_=[LK+@A>O* VC; 0Y[?)=MZ96WD>83C63&:>H)L"$<S++ZQ:.LE7/G8!J
M  ,QK(4,C@C7<$/-!6RA!%[N"HEZ\#W*\C0*\_K]X1-JG/+ FQAJC:*<QLHJ
M.&X5=@ _#F-W1/#7->*L7AXFC_YFE?UK&$)78*Z+J/.## KOKI-HFW'>(4.I
MFVALUSG;34HG<8.^E5]41HM1&<"0T"ES1) 6FF-6Y]ZIU,O7FH5=4A&4G$(0
M)WR<L!0;9%YW.@:F7R]!E\I]2H,D9RV<J8I/Q$IE/"I*LM*(]4#!7E1.9-4%
ML38K;Z%MQGAF *\MBT:6'&<2(U5]F@9I$84>@U?Z("6U%#$!^:&YI]E7?=@+
M)K!HT*_%PDO43S?6=+1KR:"1J,,9E.^OI62/F!.;R.[F]XA8,"/]_ &E+U&(
M*K]PCT*\24HNI8L819$>IKHV$'7NZGSL:0=NA,F]<GYY)]RHM[W_O]R+=/9>
MY(0N:N%>I$;'G/M>I-&\(LL5]IDQJY1F4Q5J["OL'_P*@=>(C/K]X[N)C1JI
M.F=TU >- ]$JBN4BL3E?GQ0<-;+P>PB/,@\K:8"4QHFB&%LV0IRO1W&X>&KX
M*B?PN:VI3K*M5H/A<&BWHLG'C: 80MYA8/AJH9U$#("[\IAK64G&!3[OGDEK
MGH9PYU)6A2![OHSQ-]O)L5HYY*D3N*3CC D,4DL+A#+36HII_K75Z=N7#*VN
MDO9MUQ.R1GJ)\HB;'E>?P7ZIH<Q@64IIO-6DWU!*JRGU>HXE)UAO8Y#NZB5A
M%*.>9H]X6F^;LPK6)K6Q*JP=F8$.Q4#'7BX=;,V* PRT2K_?SR%2>PC&/^;R
MRT6<(R)J& 7UQN/)%J=Y]!\6+@&4=3,(*8\6H7#[' :F0GGTUSKV8Q;/:W%A
MSW<!J5OH2JB/&+XJ=CH4A"4R>9GHA3XR2TURFSP$,;I=$Z,0,XSVNF5DG>=]
MV61'"U6@90Z#4;XP&C>+G E[X9].-OI6+T:.C\(U2M;MI53R:,&M;[_#X%U)
M/HT;1,YT@??\+OLA/+C^4^YSNG+8Z^\J=WV< ?3XY*BU1QTDQMGC42_(3<?"
M+^B&10B:4/1"#S"&.ZH@6J[>/5J'#H^E#<D\T^1K+CL[YM7'/MGLU:.QO6*J
MZ^7TC(BBY\/'GS^4"**_,.!SL=W%^ VA>Y03*Q ;G!$9HWROAQ148 Y<J $X
M> ] 52N9A26@=HW]%8?'B:ODA2B*TPC@%1FT7*CV:+T')5]SL_#KU:.Q ^(P
MT.Y2M NB%5D[ )#&(N9"K4_L/=8$NIL%6[\BG[<T&):@X=G[-0&9]^=RU(D*
M\:>]S$+>HQ!@"[-H9%?H\R[#6,>3,,0%6=K>!6^@&2.'GHO%$;WW,!1;P"P"
M1W7I9_^P?16#J5Q:$.FCX"F*J^V19-7O<YUO$&1JL!,!5XG=,>!:WW[&8:\D
MBG[B$2<>/IY[_U-[1^TP&Z$JXAE.,>--_.$! M],A#'.(Z:7K_# #:@=4:P=
M2>QM-]"VC:$877#E)E]ZM'O%@Q_3K]0>(*<CJE:M!4;.PZ\X28ZB="\NFW(M
M <! [$R$#&Q8BJR,FE04X1]%E*(F(N8N#I*<3!OIU:$=)1E82+U@;1F5@JZY
M64C[XPFV ;E9@1"TDZM4;O&4;CIR4QPBM,HN28/U@[FDT%4OV6!7I:2OX-6V
MCA'TJM1N8V++.5UN>MTE3KLJW."<)J;E'"BK%1KX3UDA7^&G8Q.3?E-6L<]G
M>'#+:,^'M.=!WB)6VS8F4*M2N?[C"<>PJ(+/W8TLJH35'=..S&64!$DX85$%
M8"!V)D(&MJ>FUU&":#:",NA(,!%ETC&FG0,ZUWPFI#$Q7'.0BQ34.9Q2#NK2
MW]RP?1QXCW;U?.5V+8*8E*Y]JIQ+YRG$H)J;@)B@+I]C"[L]AV:%(B8@"[+R
M(/$:)YM'E&X95RL42S%\G+"4IW#4LXII_R>LV<O[F;T- \ #<6!ZUI:/8\^_
MF4.D^H-OT[%X3$^\L?M8)[4>R$<RZ(7>L4=_!"B$6&(^C]BK4_\U-9LH;"<A
M[<LN5+4SG(U"92&D@PU'-JFOL(/K;P1QPNI\OJ?8:':/8BK)(]9[7&0JFP%6
MU=EXCN.)=C.)<751-*+2G,,_6?CA(!&[VA'%R,-V*#P')%];L_ZT4XO&,V5]
M&#W:3[</M(7VSJKVCJJW@-2VC0F<JE2N\;S8$1W/P$\!C!S/"*OS<B/D8KU&
M(;'"Q6OX'"0;=$_L<IM0W>G_:=3$2Q!7XW/S3B[]<)*L^C]T* =>9L8:ZJ:=
MI0;G>\3\=E7K,K/(X^6VSB2=J^>YQK<SPKB@\^&N=2N+#[J;G<J;MS0.7+GS
MG=1J:ZCUWT.+JK]7QI^X>-"_3797D[WOV#N3O;XQY?YP]20.$2_-%\#GV?CQ
MI@7R"M:R 7J-2Z,NO#'V4.QV<6F=(&ZL<Y6L<;JMX,%YE46M5)/H'UK*3@:!
M'!'8Y/2E6;(J'BC,^=K>[Q]\M=??%!L&RU0;="48^^K>]8"MEU?EVFS=U4OA
M(U0PO^ZS/O2_^H4*D6H34#%@ZV6L;YTXH,S@OHKR@EB#*$:S"*].B_P&Y_^-
M<@9<5(NU8S^TF$\ TS2&-O+@]1G>WW1PMJ4W?*O-JL!U:)Q+<:.,+3RP=XZR
M,(W*.*W;]6F1T?A6G4?U.#?GF.PYLS(0;?LXB)#6ROE>0'OE[;J^<(^3T3D>
MEZ YKV,06.N,L-;  +7Z'4_(MSS38?#S]P'+AV*[#=*WV_5#M$FB=132>ZY5
MXK(HV=SA. KI^:"-%^E&4O#>E9,2-J_#"0AM],C3((LR>L>XTVF2E; A'DD;
MG\;CD$X3K&HK36-E+P^7' 78J)T&^;6XU5.?,:U:DQ>%++B8;A)B*VO,JOJW
M\R@+8YP1Y\U]O$!*V:X]!91V%M(C@7BN D+*5].%K@YI)ZRDZ# #(I=_M<@6
M\?6\LUY&KVA59<NEVTIV;C.P4VYP>BV8?G^;049OZ1('6RQYC]8I*C.&6ST>
MWL9XDCGZ?D!::WV=0Z$VS[W#%6&6;**G&%EU$9\P7GV+XIB8>RB1=)#7*MN\
MPZ56UM(Y"T<N_GP 7&)_'B,O8<U7Z#4PUC%$WUTH55R?X<@K]-QCC+-!6YE3
M5"G8:2;J4J @YFTF "CW]R;XE#:Z_B#??"-7S_AR=S"12W^K19V+O2D&H.&Q
M*?,,YAG\JLN\S+I5>NXZ[E$>I>41QT/P$B6;C$ZQ;'B/[GVQ,EBED4LZV= H
MV9Q*JI2T<DC;%[!YZ*Q^;YLV%7>S4J<HVRR2HM:<B4Z[XTF&Z7L4A?K+PUNE
M>OT][#C%:8J_45=BPXW0/"=2CR$F:D\7V40V_$!?%EZ7EU Q]7*A(TN: T,U
M&YXQLKC2GLCEYOE87B4>2$+"-'I!I4>QT@5;TY89-UJG5]\:+Z_REO?$G^@]
M\>:>+Z^K&F'60'\B,RM='RKS:5=FKHLPPTW5GCQN]ER.&5AATQ8=N+!)4I:N
M;JIT_LY#.F&:=DY$Z^H!)Z)2RF$TKBOS$H9 _!U0.2E?31=\!J2=L)*BPQ-1
M+O]>V+'AJ8OM?GH1I$FY\8"J[#$V.NM0!DY/E9$U=]RY9%:R!@RDX750*1U'
M.Q>ZIK1A,%R_?J?D<2YOT?,Y^ML=RT7$/=H5:?A,Y@1W*=ZDP=9*I_RCB/(W
M7E=D?FP@.OAHH]L]TEO51?I6VI/7Y\1$M38\(GN]C6U[#-1GT,%ZS&BWXC'Q
MMT]]0K03[9ZC\(3HUKE!8*-;/: -G>23+H[3\O4"SO5("5ES'Y)+9N4FZ$ :
M^;14H01'8[<FJ=)FPSHZ#Z[-<.HHK\Q >/O;DZ]IJ@PKZ\FJ9DYG97^L&V_X
MT4;'O$99AM#^;>I2)%Z?A!&WVHF)K?5$3IM@1?WZ7:_/E'8X&3//][3_500I
M$21^NT=9$=-TD/LK05^2H%A%.6%H =&M8'6>N2#NC.O2/1_-TC4FE$O;Z/)"
M(7E=7ZT0Q!PNN +=UL::!NG[#,7:J5.!UNKO0'Y6YKBZ2CIW@M*(:+J+K6Q
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
M[5M1Q+ACS0%#;P*J'XB>B&[T?D)XDP:[YR@,8L:27TK7)+OGTQU,I>KMTJX
MS,6_E*[_C#"+;JI*&0I_W."7G\H-MO2MTJK^QUZI^H??OSP,--C_4(M*?[#]
M^*_ GI@A\B!!!H\'[6JTK(V.Q0U:)8-'4@H>Q,S17D#1QO4Q*-QN0;E2"DW*
M9.;O+0:YE\1POS,P(X]UY[EF%LOC']*A0Y/:N"[@ZN4="8Z^UYQ+$E!R\='%
MM=UK$ARI.,>F0&JQQG9C*VHA+DG_.<-)*<AO4?Y\5F0YWJ+TXC6,"YI<@A[R
MD_^M'H/7@1$F<&CN=^IP<,W)L$Y7IYL&Y(&ZAZM:51Z=QQ\[':S:6T&6O^[&
M=4KY'YV91P.KXAB@-K[*F1][3*="9(!*0(:8K:&YBT>!7(WC/ UB&IJR!'?J
MO,HS'GOZAO[/OBV;TT>5,NW;/* RCO=K'<U5.CB0O[_152P%VRMZG!ZC5$8
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
M*KS<2Q<H?UF45Z0[6HO3E9I@)1^U *P<LR-#UAOTFC]^0_$+^HR3_%EAPJG
M## #@#!ST07 \229(RA;$^PZI"+*9A$0T;P<S=24_F\4I(_?\*0>,N"AU3%:
M'N^L/[!M9[,;M!+9&'"YE^%Y&E"AP\%2X&2=H[14@S =AKB98"5%.(35$0-=
MV9*'PCM$,'\/XM7Z>:OW)2DPR?\S.6F- @-.1]Q%5.UH<T08R#4AL:4+MS<,
M[K*HKKN,[[T !/#WD4CC1WN\\Z29SO2NC^&ZC=Y-"3SA*D&_-93J[U_$D=?K
M[U6<\M%C(FO]=*G=!R;N@C=J3YJ^OWZ,F?? $("RC=\24%IY-7R[B_$;0F6<
M;\_RG)?KH?3-.^%R>GMW[@#-AM55'ERSXU=2OD M9^[E=LUC\(JR6G<VD@04
M3<PUB\)UM,C54L('DYVU-*,F$G)0!W^7XC7*,F* (+Y$/%\#(]XGSQ 2NXX;
M)665("3C[.4##F50IG2TDE!U@V-]')E@ZBF!A<O2RS#[\7Q2Z&FDIA30N8X5
MJ(HZKD6 %YU\GRZ\$W*/\B@M+YH\!"]1LLEHW@.+BQ&:-1H10>O<0WOQI$D!
M-$IV<GN#2]KHWN=H'27T^>,D3Z.GHDS$1)JIGE.GGX.<IOO?]+ZC-"0:W*[+
MCP-3&>-7&]  /VMN10<VV+P)^^Y(02CJG@P(X^7B2U]O8QW"6$]X3UW #>Q[
M&I/&4?@,9_D]"O$FB?ZSGP*(\<TN(X;RL,R1H%9HBCD .JS0T.K4PA3R%*<I
M_D;GCA;GC>?H23Y%%!.UN&<3V>GK3_E5F1F>]V"<@**CSXC"OC*,7$U\ J8J
M]C(O]>7@IEB2D3&UFI@TB1.!=8]><$S7=V?$JT3Y91#2=>S;0X22X)KT>/+E
M4XJ+W74<,F]@:Y>O==0H;VU@D38;GFZ/_HC"JY$.'QHUN?; VUWP%CZC\.M=
MBLG(40Z ](&+8'N-@X23&@)<8G_@*"_A-*34=8:#",1[CM,6:S8>7N<'^F*1
M29OK^7Q6_M[#%TTC1M:3WJMG<!L;SN-[\K\&:425N@]RUNNUO,^UK<:?;>O
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
MP?24UKQ@AJ; )@5S8AC5[3$&IM"S-3)_I%74UL04W*26_CX=;V8-8\D;39#
M_,I[\2^':S:G'(F6.N\PA9]TQ:/N>HWEZ)E3MME##[1D.PHGY(XY9W9/[BBZ
M[#MP]AVF+7'GWH=0EDX_IL/V '6QW<7X#:$'E+Y$(6+;LHTJJ,SSB/,@[GX_
MPUE^@_/_1OD]"O$FB?Z#5@\Y#K_6?6>XUW'(.IM=D</4>2Q=U4(+S=*I#Z.'
M_BM:1]O]JXMIESBM?Z)TPQ6MG<KG=@B<RA?/,+W-O'(1'(7T7\.R[2O,["$V
M=U;;0,1Y=MWYU1C=0V=5<R0]_4#M,%M\[2RBU[WW[Y[VW@G1<Z-+YZ43G#50
M5*5*L\]E2JH\IAY^V/9Q*II>28VZY__B7\^_2W&(T"J[)!#JKEMX;\& Z>LV
M!= ?28=1M<P<: ?(T!R7>!BN#)J-/P:OIRA!ZRBG1F@4OUU/W7)2X:NRBH3Q
M/9(^,I>EK:W]8+(V?<Y4(/(AVS]\1JLBIBK)K)KQS/I(#W2-S"W&H&*VORF9
M)TT@.K+JG_38;O[S* MCG!4I,697_WL4TQ=KZ-9&-EHM9<Q31N- 8C7]-'G+
M]C8GIZ%8IO_Z:=3J!%M?JV_,3SU$H-<<):O]]*.'":(VT2O,?\A1^/QCB+=5
M_:7[NDI"PC1Z07<Q(;HGR]XTHM%=Y<=SE =1G'UO81I@!I/UV&\(X!46IS*S
MLO1O\7Y>(Y2#]M^B_/DJ644OT:H(XA'PLU[G;!;YLS!OEO.&F=NP_D3)3]\>
MB7 < [Q&PXGN@6IK>L/<M5E9@Y21 *6@W9%@KT@3!I#QI3_'-&2 &>-ODG$O
MY-\,8U>ZR!@MGQ'CX2B=H@+P\HM:#@$SBAH\R6ZL@"T3XM&IF9I8<US+/N3,
M^T"^&L_H>@9S\WDUVL=IF='$\$T$*VMVH[,NCF.8;P+!6]6;T(KG3XQJX^5E
MEHE6&6W1F)E[\G9^S+%UT-;<1:MB,9BM+"]$U5LRN\JR8G1"-9F/-K):/JY.
M&I@;<Z;LI338][;<)DC@;^X=):6[1/2299(-=UI,L=,!/Y/=\?8!N?4.U!68
M@OA['4Y)]\_!:[0MMI)KL299ZO0,+LOC[1TP*QZHAW"%\??%$R7]FP/INS0*
M)XT83$8Z/6+ Z'C[@<AB!T+_0(0Y\KBZTV+J"TAYB_(64D;WM7I!)W"!]&>^
M+RA]PO;;T]E=*M4@$T>VH\;Q)AZ&&\T1;S+#T?-\02=FA/4W\N0J(7]%C\$K
MRJ@)<$*UNEVW/]?1=A;#3UI1]LW.V:8#4-9X$E+:F&6V M7KRMKL="(=)464
M;&YWJ'X-1J:\.H>A450XV##669%2?S;=9M,9U::;PLBB!2\1<5MDC384F&TF
M&77?%GQJ:X.=@>;&JM;HCUSZ$M!12UJSO[NSM6H/Q%#H)%E=DTJ@L(25Z8-3
M5N8X(*IDF1F *JO?WZW3IB?B%$6;!.H_)=0#_\FE/@YP JTQA__DUNSO+J78
M,$K3'J6IS;&@$6:+&<#(K7C"[B&],6M[MVG69E&8F?>;;):V$DOC[YRLV1J9
MOLXRP&EP]N'-2JL1N)ZTPQRT6J&!:62%K!\H3'0-6L9AGR!HN@.H!%Z'(_8F
M[VJP52DZ "^LZ+% 6,-0LP 9)H>7KSNU?;6:]"OZ7U"AH?^5%#H6\"H99Q[_
M*Y' \#5P)V9=:C,KM=G3\6#3(BB7!9U.RQQZ13=)''_W+6%.!=9[W',B$R&J
MXS0TX3?#D.66DQ"<P/,M/=T)C*L56'NN?1N+DX>+]1J%-(5(J_(]F=FS%!UT
M>?6"S6UWA8*NPU+;"$IH5*G%RR476T&:>#D)HSBJ&KPYQ:9+SX+(\-8C!J%3
MBZ,0MHH<_<3S%+,9 +IB]?H#HBCL]C =H>[)R>8:9]E9D*9O:YQ6.<L9N7N
MU'5+2*EM*$Q:[8PT#QE:.P(Q\N)(Z6HE!73.J'<3;!$SP0R06J1JE]J&PO>D
MMQ-O],Q,]L+^6*LS_&C-54); 4L4ZGL^"5?J_8;<_$UO(>^M6!7M &LV*4:D
MC/TU+-3C\\PK3>$AJ8!K7H^S:;33AY,B?\8I?45L//Z(B8;[&P,B-[1B#CDR
M,JYF5O.-$5FR/ K/<)'DZ1L[L9B(IMG<9M/8GZ3S&@/#].+,N0=<RTU--C<O
M^W'O2/+_*=(H6T4A-0$3'T#J)I&EC-IIS*CI"D>/E.\<V]Y6;3N<PP#=I\RD
MS<R%S^Y=3%E @ZSR?(7'U<N=,KZ^UYRL7@HEI!L%UW9S<2GLRI^^=?W1] MP
M8G[JU^%X_#3,FM,KFM16'S[^_*&T%_U%@)0;G#\43_]&8?Z(B:11)1(8-N+B
M4@SQBMOW\I-1@">;3?NHD"T9=7_J$EF+/U9&\A083\'PNP2P8^@50??P<18<
MZ++W2K9TM27'KEYAX48XO_!QH'>2R6: KZH\UJZ3J>!W+W#UWAX$MKPR(K2.
MRQPQ2"4&.A0VQV+,D9/JD,L%.G#0E[^8QD%$[?UA,\KJ^&#F.F$*H]X"08_1
M<6#?F"EGZ!!39*M[R9^/:7]FO#^@%H@'6C-#MW.NNSG8# CA^=L3"KMJZAM
MREMLH"K\?6(/&#RE%HZC%!@E9:T_2CN43JP)L:=[M5F&\HR>+43!4Q1'>40_
M+QG%9LT(T<GF)FD*7G8L?0Y-[@@=#C8O7;7"W:!<<I==1#JX;L4F=4)/OBMJ
M#I-EZL,Y\*P"X6#]8IJPN;$)N[!OH['J[5Y@4JK/RT@ !4W9"SY]!NJ(M;_
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
MC;&1TX7O@C!:1^%]M&4V(N]S;8'Q9[<;4Z*.0H...>G'.IJ\C:XVGIZ=#-?
M)P.3T!_<;M.1R JM2,O6[?9G7T/.I=-2#)_H#4S'8UUN"_-9+JLR^&K!])I,
M4*^A8.Q#/VBG9(=KSB7%J6S:( E=-E;.Q*HNFO6@0*/PQ-%?<OK^LE!$;Q$R
MU1V%I!3DMRA_;MII_PP$:2/R/YI!GXT6'0Y]H*AQL#W. AH>FS .<X#F5UY%
MWFA4ZF7 PAU=**3Y&TU$D1.70@-I=]1 -VC87R&DS41=2.H'\!34U4"8F+N_
MR0]'F[1W**4_!!OT078 QB#EG8#U2/W DX*Z&G@2<Y\C==D![3QY.H759QO]
M-M"5H+-T$=5\-/>0IZYC#$V<32]S],727^Y;7YS*+F=@P]<7F%YO5'W_WK!>
MM89F:A8N^US3%[DRBS=[*@$X*SKVQ[IYAQ]MS$YNR9PKH&@JA;EXI7G8AE=R
MA#2U+AP::WV58W@,TZ;?\?J\:'?C\/#W<8ZS('N^C/&W5K&3,(]>RI0#UW0]
MQWO,2KE<,WV%E[/?*^H'(X9;6F(B9K_8$]D+)E)NL5&?X:@ZB"J"UC/N3WO^
MGL\"^4Y(M]_('),"7W]7U)4F?<R<HRQ,HUW9J+RA6*E4.T8#2]EW4X-W)N[1
MMGI<M_SXB-+M<+M!MSC3M4&*6^R(:FT_<GG*QAEV5%#]8U<(J=??68=05_H.
M"CTEOP]R5&_=J.!74!R"7V;QH\&OW#CSX)=9K^>O,_ '>;T11S;$@[GZ^SI#
M7[GK*'B*XG(.T\P,SPO>@D2G*-,?R(JZ,O%IY'SK2'F#7O/';RA^09]QDC\/
M%RY3V0BF1C VUOJJ%CHX/5G#8OVNK2(,K^/#A/!WA@#5^;]1D#Y^PYI 'Y16
MQ'=;^FAAS;;/8=#<UGU<ZU6NJJ3.X?ZK=GD=(%?ECQO*#!L=$,Q5[?[.SE24
MO<3%,*)=M[@&F*OB1XUEAH4.!^6J<C?B[F='<O0RQ2]WB^L@N2Q^W$@>6^B
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
MTGZ/]3N6T-WV=FX4:C@N>\L&,MA>"W D&^^,>!@8+UVL,F8#TLT-'E/6=.!
M^Q/U%_J?IR!#__/_!U!+ 0(4 Q0    ( !68>U9+)'&36@0  ! /   *
M          "  0    !E>#(S7S$N:'1M4$L! A0#%     @ %9A[5FI5K# -
M"0  :RX   H              ( !@@0  &5X,S%?,2YH=&U02P$"% ,4
M"  5F'M6SITB,0P)  "?+0  "@              @ &W#0  97@S,5\R+FAT
M;5!+ 0(4 Q0    ( !68>U;8GE"7904  * 8   (              "  >L6
M  !E>#,R+FAT;5!+ 0(4 Q0    ( !68>U;K4%.,.4,  !?) 0 )
M      "  78<  !E>#-?,BYH=&U02P$"% ,4    "  5F'M6WX'8P-N( @!K
MV1P #P              @ '67P  9F]R;3$P:S(P,C(N:'1M4$L! A0#%
M  @ %9A[5M^\\:1+<0$ .+@!  L              ( !WN@" &EM86=E,#$N
M:G!G4$L! A0#%     @ %9A[5@3TN9?\$P  HN<  !$              ( !
M4EH$ '1A8W0M,C R,C$R,S$N>'-D4$L! A0#%     @ %9A[5B!BE).O%P
MYV0! !4              ( !?6X$ '1A8W0M,C R,C$R,S%?8V%L+GAM;%!+
M 0(4 Q0    ( !68>U;(+@#3EDH  #M/!0 5              "  5^&! !T
M86-T+3(P,C(Q,C,Q7V1E9BYX;6Q02P$"% ,4    "  5F'M6L->NZ?'E  "&
M @X %0              @ $HT00 =&%C="TR,#(R,3(S,5]L86(N>&UL4$L!
M A0#%     @ %9A[5CD<H7LY>0  MM$( !4              ( !3+<% '1A
I8W0M,C R,C$R,S%?<')E+GAM;%!+!08     #  , -8"  "X, 8    !

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